wtc-simplegl+wtc-math+webgl实现三维粒子小球动画效果代码
代码语言:html
所属分类:三维
代码描述:wtc-simplegl+wtc-math+webgl实现三维粒子小球动画效果代码
代码标签: wtc-simplegl wtc-math webgl 三维 粒子 小球 动画
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <style> body { background: #333; color: #fff; font-family: sans-serif; } body, html { margin: 0; overflow: hidden; padding: 0; } canvas { width:100%; height: 100%; } </style> </head> <body translate="no"> <script type="x-shader/x-vertex" id="vert">#version 300 es layout(location=0) in float a_id; layout(location=1) in vec2 a_something; layout(location=5) in vec3 a_position; out vec3 v_position; out float v_id; out vec2 v_something; out vec3 lp; uniform vec2 u_resolution; uniform mat4 u_viewMatrix; uniform mat4 u_viewProjectionMatrix; uniform mat4 u_modelViewMatrix; uniform float u_time; void main() { float id = a_id*200.; v_position = a_position; v_id = a_id; v_something = a_something; vec3 p = a_position + vec3(cos(u_time+id)*.2, sin(u_time+id)*.2, 0); float m = 1./(u_resolution.x/u_resolution.y); vec4 position = u_viewProjectionMatrix * vec4(p, 1.); mat3 viewmat = mat3(u_viewMatrix); vec3 lightWorldPosition = vec3(50, 100, 50); // The world space position of the light vec3 viewSpacePos = viewmat * p; // Transform to view space vec3 lightViewPosition = viewmat * lightWorldPosition; // Transform to view space lp = normalize(lightViewPosition - viewSpacePos); // Direction from point to light in view space // lp = normalize((u_viewProjectionMatrix * vec4((p - vec3(20,20,0)), .........完整代码请登录后点击上方下载按钮下载查看
网友评论0