webgl实现一个三维无限洞穴穿越通行动画效果代码
代码语言:html
所属分类:三维
代码描述:webgl实现一个三维无限洞穴穿越通行动画效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <style> html { height: 100%; } body { background: #333; overflow: hidden; padding: 0; margin: 0; width: 100%; height: 100%; display: flex; align-items: center; } canvas { height: 100%; width: 100%; } </style> </head> <body translate="no"> <canvas id="canvas"></canvas> <!-- VertexShader code here --> <script id="vertexShader" type="x-shader/x-vertex">#version 300 es precision highp float; in vec4 position; void main() { gl_Position = vec4( position ); } </script> </script> <!-- FragmentShader code here --> <script id="fragmentShader" type="x-shader/x-fragment">#version 300 es precision highp float; out vec4 fragColor; uniform vec4 u_mouse; uniform vec2 u_resolution; uniform float u_time; uniform sampler2D iChannel1; #define R u_resolution #define T u_time #define M u_mouse #define PI 3.141592653 #define PI2 6.283185307 #define MAX_DIST 40. #define MIN_DIST 1e-3 const float N = 13.; mat2 rot(float a) { return mat2(cos(a),sin(a),-sin(a),cos(a)); } vec2 hash2( vec2 p ) { p.x=mod(p.x,N); return fract(sin(vec2(dot(p,vec2(54.3,25.7)),dot(p,vec2(87.2,54.1))))*4258.4373); } float gx,gxs; // original voronoi @iq https://iquilezles.org/articles/voronoilines // I tried to modify/optimize to run faster for the height map float voronoi(vec2 x) { float phase = 295.; vec2 n = floor(x), f = fract(x); float minDi.........完整代码请登录后点击上方下载按钮下载查看
网友评论0