webgl实现一个三维无限洞穴穿越通行动画效果代码

代码语言:html

所属分类:三维

代码描述:webgl实现一个三维无限洞穴穿越通行动画效果代码

代码标签: 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