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