扩散半球

Three.js 3D 半圆扩散效果 | 三维可视化 / AI 提示词
📋 AI 提示词
prompt
1
使用 Three.js 创建 3D 半圆扩散效果,结合纹理贴图和透明度动画实现扩散波效果。
🖼️ 效果预览
🎮 案例演示
效果描述
这是一个展示如何创建 3D 半圆扩散效果的示例。
效果特性
- 3D 半圆:使用 SphereGeometry 创建 3D 半圆
- 扩散动画:半圆扩散动画
- 透明度动画:透明度渐变动画
- 纹理贴图:使用纹理贴图
- 缩放动画:缩放动画
- TWEEN 动画:使用 TWEEN 库
核心参数
| 参数 | 值 | 说明 |
|---|---|---|
| 半圆半径 | 50 | 半圆半径 |
| 分段数 | 120, 120 | 半径分段、高度分段 |
| 扩散范围 | 160 | 扩散范围 |
| 缩放速度 | 1/60, 1/80 | XYZ 缩放速度 |
| 透明度范围 | 0-1 | 透明度范围 |
核心代码解析
创建 3D 半圆
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function scatter3DCircle(r) {
const geometry = new THREE.SphereGeometry(
r,
120,
120,
0,
Math.PI * 2,
0,
Math.PI / 2,
);
let circle = new THREE.Mesh(
geometry,
new THREE.MeshBasicMaterial({
map: new THREE.TextureLoader().load(
"../../../files/images/gradual_red_01.png",
),
}),
);
return circle;
}
动画循环
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
let s = 0, p = 0;
function animate() {
requestAnimationFrame(animate);
if (s > 160) {
((s = 0), (p = 160));
}
circle3D.scale.set(1 + s / 60, 1 + s / 80, 1 + s / 60);
circle3D.material.opacity = p / 160;
s++;
p--;
TWEEN.update();
renderer.render(scene, camera);
}
技术亮点
- 3D 半圆:使用 SphereGeometry 创建 3D 半圆
- 扩散动画:半圆扩散动画
- 透明度动画:透明度渐变动画
- 纹理贴图:使用纹理贴图
- TWEEN 动画:使用 TWEEN 库
调试技巧
- 扩散速度:调整扩散速度
- 缩放速度:调整缩放速度
- 透明度速度:调整透明度变化速度
- 纹理贴图:更换纹理贴图
- 半圆参数:调整半圆参数
扩展方向
- 多层扩散:创建多层扩散效果
- 不同形状:使用不同形状
- 颜色渐变:添加颜色渐变
- 交互控制:添加交互控制
- 复杂动画:创建复杂动画
本文档由 ThreeLab 编辑整理,如需转载,请注明出处。








京公网安备 11010502038735号
💬 评论区
评论功能即将上线,敬请期待!