three+webgl实现三维液态融合变形动画效果代码
代码语言:html
所属分类:三维
代码描述:three+webgl实现三维液态融合变形动画效果代码
代码标签: three webgl 三维 液态 融合 变形 动画
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <style> * { margin: 0; padding: 0; box-sizing: border-box; } body { background-color: #020308; overflow: hidden; font-family: 'Inter', sans-serif; position: relative; } canvas { display: block; width: 100%; height: 100vh; } .transform-button { position: absolute; bottom: 30px; left: 50%; transform: translateX(-50%); padding: 12px 24px; background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 50px; color: rgba(255, 255, 255, 0.9); font-family: 'Inter', sans-serif; font-weight: 600; font-size: 16px; cursor: pointer; transition: all 0.3s ease; z-index: 100; box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1); text-shadow: 0 1px 3px rgba(0, 0, 0, 0.2); } .transform-button:hover { background: rgba(255, 255, 255, 0.15); box-shadow: 0 8px 32px rgba(31, 38, 135, 0.2); border: 1px solid rgba(255, 255, 255, 0.3); transform: translateX(-50%) translateY(-2px); } .transform-button:active { transform: translateX(-50%) translateY(0); } @media (max-width: 768px) { .transform-button { padding: 10px 20px; font-size: 14px; bottom: 20px; } } </style> </head> <body translate="no"> <button id="transformButton" class="transform-button">Transform Shapes</button> <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/three.160.js"></script> <script type="module"> const scene = new THREE.Scene(); const camera = new THREE.OrthographicCamera(-1, 1, 1, -1, 0, 1); const renderer = new THREE.WebGLRenderer({ antialias: true }); renderer.setSize(window.innerWidth, window.innerHeight); document.body.appendChild(renderer.domElement); let cubeTransformValue = 0.0; let targetCubeTransformValue = 0.0; let isTransforming = false; const material = new THREE.ShaderMaterial({ uniforms: { time: { value: 0.0 }, resolution: { value: new THREE.Vector2(window.innerWidth, window.innerHeight) }, mouse: { value: new THREE.Vector2(0.5, 0.5) }, cubeTransform: { value: 0.0 } }, vertexShader: ` varying vec2 vUv; void main() { vUv = uv; gl_Position = vec4(position, 1.0); } `, fragmentShader: ` uniform float time; uniform vec2 resolution; uniform vec2 mouse; uniform float cubeTransform; varying vec2 vUv; #define MAX_STEPS 100 #defin.........完整代码请登录后点击上方下载按钮下载查看
网友评论0