three打造水渍滑动效果
代码语言:html
所属分类:动画
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title> Soothe</title> <style> @import url('https://fonts.googleapis.com/css?family=Open+Sans:600&display=swap'); * { margin: 0; border: 0; box-sizing: border-box; } body { margin: 0; position: fixed; overflow: hidden; background-color: #090d13; user-select: none; } canvas { width: 100%; height: 100%; } </style> </head> <body translate="no"> <script type="text/javascript" src="http://repo.bfw.wiki/bfwrepo/js/three.js"></script> <script> // // shaders // const basic_vert = ` precision highp float; void main() { gl_Position = vec4( position, vec2(1.0) ); } `; const prep_frag = ` precision highp float; void main() { gl_FragColor.z = 0.012; } `; const physics_frag = ` precision highp float; uniform vec3 mouse; uniform vec3 pmouse; uniform vec2 resolution; uniform sampler2D texture; float distToSegment( vec2 x1, vec2 x2, vec2 p ) { vec2 v = x2 - x1; vec2 w = p - x1; float c1 = dot(w,v); float c2 = dot(v,v); // if c2 <= c1 == c1 // if c2 > c1 == c2 float div = mix( c2, c1, step( c2, c1 ) ); // if c1 < 0 == 0.0 float mult = step( 0.0, c1 ); float b = c1 * mult / div; vec2 pb = x1 + b*v; return distance( p, pb ); } vec3 computeNormal( vec4 n ) { // pixel scale vec2 un = 1. / resolution; .........完整代码请登录后点击上方下载按钮下载查看
网友评论0