wtc-gl+webgl实现三维阶梯式立方体旋转动画效果代码

代码语言:html

所属分类:三维

代码描述:wtc-gl+webgl实现三维阶梯式立方体旋转动画效果代码

代码标签: wtc-gl webgl 三维 阶梯式 立方体 旋转 动画

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

<!DOCTYPE html>
<html lang="en" >

<head>
  <meta charset="UTF-8">
  


  
  
<style>
body {
  background: pink;
  margin: 0;
  overflow: hidden;
}
canvas {
  
  width: 100vw;
  height: 100vh;
}
</style>



  
  
</head>

<body translate="no">
  <script type="text/fragment" id="vertShader">#version 300 es
  in vec3 position;
  in vec2 uv;
  in vec3 normal;
  in mat4 translation;
  in mat4 inverseTranspose;
  in float scale;
  
  uniform mat4 u_viewMatrix;
  uniform mat4 u_modelMatrix;
  uniform mat4 u_modelViewMatrix;
  uniform mat4 u_projectionMatrix;
  uniform mat3 u_normalMatrix;
  uniform float u_time;
  
  out vec3 vNormal;
  out vec3 vPosition;
  out vec3 vWorldPosition;
  out vec2 vUV;
  
  void main() {
    vec3 pos = (translation*vec4(scale*position, 1.)).xyz;
    // vec3 pos = mat3(translation)*(scale*position);
    
    vec4 camPos = u_projectionMatrix * u_modelViewMatrix * vec4(pos, 1.0);
    
    gl_Position = camPos;
    
    vUV = uv;
    vNormal = (inverseTranspose * vec4(normal,1)).xyz;
  }
</script>
<script type="text/fragment" id="fragShader">#version 300 es
  precision highp float;
  
  in vec3 vNormal;
  in vec2 vUV;
  in vec4 camPos;
  in vec3 vPosition;
  in vec3 vWorldPosition;
  
  out vec4 colour;
  
  uniform float u_time;
  
  // Simplex 2D noise
  //
  vec3 permute(vec3 x) { return mod(((x*34.0)+1.0)*x, 289.0); }

  float snoise(vec2 v){
    const vec4 C = vec4(0.211324865405187, 0.366025403784439,
             -0.577350269189626, 0.024390243902439);
    vec2 i  = floor(v + dot(v, C.yy) );
    vec2 x0 = v -   i + dot(i, C.xx);
    vec2 i1;
    i1 = (x0.x > x0.y) ? vec2(1.0, 0.0) : vec2(0.0, 1.0);
    vec4 x12 = x0.xyxy + C.xxzz;
    x12.xy -= i1;
    i = mod(i, 289.0);
    vec3 p = permute( permute( i.y + vec3(0.0, i1.y, 1.0 ))
    + i.x + vec3(0.0, i1.x, 1.0 ));
    vec3 m = max(0.5 - vec3(dot(x0,x0), dot(x12.xy,x12.xy),
      dot(x12.zw,x12.zw)), 0.0);.........完整代码请登录后点击上方下载按钮下载查看

网友评论0