webgl滤镜水彩过滤效果

代码语言:html

所属分类:动画

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">

<style>
#container {
 
width: 60vw;
 
height: 33vw;
 
display: block;
 
position: absolute;
 
top: 50%;
 
left: 50%;
 
-webkit-transform: translate(-50%, -50%);
         
transform: translate(-50%, -50%);
 
border: 7px solid rgba(255, 255, 255, 0.1);
 
box-shadow: 0px 0px 10px #00000038;
 
cursor: pointer;
}

.help {
 
font-family: sans-serif;
 
position: absolute;
 
bottom: 10px;
 
text-align: center;
 
width: 100%;
 
color: rgba(0, 0, 0, 0.4);
}
</style>

</head>
<body translate="no">
<script id="fragmentShader" type="x-shader/x-fragment">
 
  varying vec2 vUv;
        uniform float dispFactor;
        uniform float dispFactor2;
        uniform float dispFactor3;
        uniform float dispFactor4;
        uniform float dispFactor5;
        uniform sampler2D map;
        uniform sampler2D map3;

        vec4 layer(vec4 foreground, vec4 background) {
                return foreground * foreground.a + background * (1.0 - foreground.a);
        }

        vec2 rotateUV(vec2 uv, float rotation) {
                float mid = 0.5;
                return vec2(
                                cos(rotation) * (uv.x - mid) + sin(rotation) * (uv.y - mid) + mid,
                                cos(rotation) * (uv.y - mid) - sin(rotation) * (uv.x - mid) + mid
                );
        }
       
  void main()
  {
                vec4 color = vec4(0.0, 0.0, 0.0, 0.0);
                vec4 OG = texture2D(map, vUv);
                OG.a = 0.0;

                vec2 scaleCenter = vec2(0.5, 0.5);

                        for(float i = 0.0; i < 10.0; i++) {

                        // float rnd = random( st );

                        vec2 myUV = vUv;

                        myUV = (myUV - scaleCenter) * ((i * 0.075)) + scaleCente.........完整代码请登录后点击上方下载按钮下载查看

网友评论0