three实现鼠标滚动三维粒子流变形动画炫酷效果代码
代码语言:html
所属分类:粒子
代码描述:three实现鼠标滚动三维粒子流变形动画炫酷效果代码
代码标签: three 鼠标 滚动 三维 粒子流 变形 动画 炫酷
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Three.js Particle Morphing</title>
<style>
body {
margin: 0;
background-color: #001009;
color: white;
}
#app {
/* This div makes the page scrollable */
height: 500vh;
position: relative;
z-index: 1;
}
#three-canvas {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100vh;
z-index: -1; /* Place canvas behind content */
}
</style>
</head>
<body>
<!-- Canvas for Three.js -->
<canvas id="three-canvas"></canvas>
<!-- Scrollable content area -->
<div id="app"></div>
<!-- Import Three.js from a CDN -->
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/three.127.js"></script>
<script type="module">
// --- Shaders (GLSL Code) ---
const vertexShader = `
uniform float uTime;
uniform float uSphereStrength;
uniform float uTorusStrength;
uniform float uKnotStrength;
uniform float uScale;
varying float vDistToCamera;
// Simplex Noise function (from the original code)
vec4 permute(vec4 x){return mod(((x*34.0)+1.0)*x, 289.0);}
vec4 taylorInvSqrt(vec4 r){return 1.79284291400159 - 0.85373472095314 * r;}
vec3 fade(vec3 t) {return t*t*t*(t*(t*6.0-15.0)+10.0);}
float cnoise(vec3 P){
vec3 Pi0 = floor(P);
vec3 Pi1 = Pi0 + vec3(1.0);
Pi0 = mod(Pi0, 289.0);
Pi1 = mod(Pi1, 289.0);
vec3 Pf0 = fract(P);
vec3 Pf1 = Pf0 - vec3(1.0);
vec4 ix = vec4(Pi0.x, Pi1.x, Pi0.x, Pi1.x);
vec4 iy = vec4(Pi0.yy, Pi1.yy);
vec4 iz0 = Pi0.zzzz;
vec4 iz1 = Pi1.zzzz;
vec4 ixy = permute(permute(ix) + iy);
.........完整代码请登录后点击上方下载按钮下载查看
















网友评论0