canvas+webgl实现万圣节三维可拖动旋转南瓜头笑脸灯笼效果代码
代码语言:html
所属分类:三维
代码描述:canvas+webgl实现万圣节三维可拖动旋转南瓜头笑脸灯笼效果代码
代码标签: canvas webgl 万圣节 三维 拖动 旋转 南瓜头 笑脸 灯笼
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> </head> <body > <script> const canvas = document.createElement("canvas"); const gl = canvas.getContext("webgl2"); document.title = "🤖"; document.body.innerHTML = ""; document.body.appendChild(canvas); document.body.style = "margin:0;touch-action:none;overflow:hidden"; canvas.style.width = "100%"; canvas.style.height = "auto"; canvas.style.userSelect = "none"; const dpr = window.devicePixelRatio; function resize() { const { innerWidth: width, innerHeight: height } = window; canvas.width = width * dpr; canvas.height = height * dpr; gl.viewport(0, 0, width * dpr, height * dpr); } window.onresize = resize; const vertexSource = `#version 300 es #ifdef GL_FRAGMENT_PRECISION_HIGH precision highp float; #else precision mediump float; #endif in vec4 position; void main(void) { gl_Position = position; } `; const fragmentSource = `#version 300 es /********* * made by Matthias Hurrle (@atzedent) */ #ifdef GL_FRAGMENT_PRECISION_HIGH precision highp float; #else precision mediump float; #endif // this particular pixel's color out vec4 fragColor; uniform vec2 resolution; uniform vec2 touch; uniform int pointerCount; uniform float time; #define P pointerCount #define mouse (touch/resolution) #define T time #define S smoothstep mat2 rot(float a) { float s=sin(a), c=cos(a); // 2D rotation matrix return mat2(c,-s,s,c); } float pumpkin(vec3 p.........完整代码请登录后点击上方下载按钮下载查看
网友评论0