three+webgl实现网格地平线日出日落交互动画效果代码
代码语言:html
所属分类:动画
代码描述:three+webgl实现网格地平线日出日落交互动画效果代码
代码标签: three webgl 网格 地平线 日出 日落 交互 动画
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<style>
* {
margin: 0;
padding: 0;
}
html {
height: 100%;
background-color: #FFF;
}
body {
margin: 0;
height: 100%;
font-family: 'Noto Sans JP', sans-serif;
height: 10000px;
}
#myCanvas {
overflow: hidden;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
#myCanvas canvas {
display: block;
width: 100%;
height: 100%;
}
</style>
</head>
<body>
<!-- Threejs -->
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/three.127.js"></script>
<!-- tweakpane -->
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/tweakpane.3.0.5.js"></script>
<div id="myCanvas"></div>
<script id="fragmentShader" type="x-shader/x-fragment">
varying vec2 vUv;
uniform vec2 u_resolution;
uniform float u_time;
uniform vec2 u_mouse;
uniform float u_radius;
uniform float u_scrollY;
uniform float u_volume;//
float random (in float x) {
return fract(sin(x)*1e4);
}
float random (vec2 st) {
return fract(sin(dot(st.xy,
vec2(12.9898,78.233)))*
43758.5453123);
}
void line( vec2 a, vec2 l ) {
l.x *= u_resolution.y/u_resolution.x;
l += 0.5;
l *= u_resolution;
vec2 P = gl_FragCoord.xy;
a.x *= u_resolution.y/u_resolution.x;
a += 0.5;
a *= u_resolution;
vec2 aP = P-a;
vec2 al = l-a;
vec3 al3 = vec3(al, 0.0);
vec3 aP3 = vec3(aP, 0.0);
float q = length(cross(aP3,al3))/length(al3);
float d = q;
if ( dot(al, aP) <= 0.0 ) { // before start
d = distance(P, a);
}
else if ( dot(al, al) <= dot(al, aP) ) { // after end
d = distance(P, l);
}
float br = 0.001 * u_resolution.y;
gl_FragColor.rgb += vec3(0.15, 0.15, 0.45) * br / d;
}
void light (vec2 uv) {
float aspect = u_resolution.x / u_resolution.y;
vec2 center = vec2( u_mouse.x, u_mouse.y );//
float radius = u_volume;
float lightness = radius / length( uv - center );
gl_FragColor.rgb += vec3( lightness );
}
void main() {
vec2 imageResolution = vec2(1024.0, 1024.0);
vec2 ratio = vec2(
min((u_reso.........完整代码请登录后点击上方下载按钮下载查看
网友评论0