three+lil-gui实现三维可调节参数的壁炉火苗燃烧效果代码
代码语言:html
所属分类:三维
代码描述:three+lil-gui实现三维可调节参数的壁炉火苗燃烧效果代码
代码标签: three lil-gui 三维 调节 参数 壁炉 火苗 燃烧
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <style> @import url(https://fonts.googleapis.com/css?family=Open+Sans:800); .webgl { position: fixed; top: 0; left: 0; right: 0; bottom: 0; outline: none; background-color: #000000; cursor: move; /* fallback if grab cursor is unsupported */ cursor: grab; cursor: -webkit-grab; } #credits { position: absolute; width: 100%; margin: auto; bottom: 0; margin-bottom: 20px; font-family: "Open Sans", sans-serif; color: #eeeeee; font-size: 0.7em; text-transform: uppercase; text-align: center; } #credits a { color: #555555; } #credits a:hover { color: #ffffff; } </style> </head> <body translate="no"> <canvas class="webgl"></canvas> <script type="x-shader/x-vertex" id="basicVert"> precision highp float; varying vec2 vUv; void main() { vUv = uv; vec4 modelViewPosition = modelViewMatrix * vec4(position, 1.0); gl_Position = projectionMatrix * modelViewPosition; } </script> <script type="x-shader/x-fragment" id="rgbLightmapFrag"> uniform sampler2D map; uniform float ratioR; uniform float ratioG; uniform float ratioB; uniform float gamma; varying vec2 vUv; void main(void) { vec4 tex = texture2D(map, vUv); // using RGB channels of the texture de vary the lighting float col = tex.r * ratioR + tex.g * ratioG + tex.b * ratioB; // adjust contrast col = pow(col, gamma); gl_FragColor = linearToOutputTexel(vec4(col, col, col, 1.)); } </script> <script type="x-shader/x-vertex" id="fireVert"> precision highp float; uniform sampler2D noiseMap; uniform float time; uniform float intensity; varying vec2 vUv; void main() { vUv = uv; // using a noise texture to displace the geometry vec4 noise = texture2D(noiseMap, vUv * .3 + vec2(0., -time * .2)); vec3 pos = position; pos.y *= intensity; vec3 displacement = vec3(0., 0., 0.); displacement.z += (-.5 + noise.g) * .1 * vUv.y; displacement.y += (-.5 + noise.r) * .2 * vUv.y ; vec4 modelViewPosition = modelViewMatrix * vec4(pos + displacement, 1.0); gl_Position = projectionMatrix * modelViewPosition; } </script> <script type="x-shader/x-fragment" id="fireFrag"> uniform sampler2D noiseMap; uniform float time; uniform float opacity; uniform float stylizeRatio; uniform float styli.........完整代码请登录后点击上方下载按钮下载查看
网友评论0