蒸汽波太阳

Three.js 蒸汽波太阳特效
📋 AI 提示词
prompt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
使用 Three.js 实现蒸汽波风格太阳特效,具体要求:
**核心特效**
- 圆形太阳形状
- 水平条纹动画
- 渐变色彩 (红色到黄色)
- 递进式线条衰减
**场景与光照**
- 全屏 PlaneGeometry
- 无额外光源
- 透明背景
**交互与控制**
- 无控制器,纯动画展示
**技术要求**
- Three.js 版本 (ES Module)
- 自定义 ShaderMaterial
- PlaneGeometry 全屏
- fract + step 动画
🖼️ 效果预览
🎮 案例演示
📖 效果拆解
| 层次 | 视觉效果 | 技术实现 |
|---|---|---|
| 基础 | 圆形太阳 | smoothstep 边缘软化 |
| 条纹 | 水平动态线 | fract(uv.y * 20. - uTime) |
| 颜色 | 红到黄渐变 | mix(vec3(4.,0.,.2), vec3(1.,1.1,0.), uv.y) |
| 衰减 | 底部浓密 | decreasing 因子 |
🔧 核心技术点
1. 圆形遮罩
为什么需要这个技术:将平面限制为圆形太阳形状。
glsl
1
2
float circular = length(uv - vec2(0.5));
circular = smoothstep(0.3, 0.29, circular);
2. 条纹动画
为什么需要这个技术:用 fract 创造无限重复的水平线。
glsl
1
2
3
4
float line = fract(uv.y * 20. - uTime / 10.);
line = abs(line - 0.5);
line -= decreasing;
line = step(line, 0.2);
3. 颜色渐变
为什么需要这个技术:模拟蒸汽波风格的粉红到黄色渐变。
glsl
1
vec3 sumCol = mix(vec3(4.,0.,.2), vec3(1.,1.1,0.), uv.y);
4. 递进衰减
为什么需要这个技术:线条在底部更密集,向上逐渐稀疏。
glsl
1
float decreasing = -uv.y + 0.3;
💡 调试与优化
| 问题类型 | 表现形式 | 解决方案 |
|---|---|---|
| 线条闪烁 | 不连贯 | 调整 fract 频率 |
| 边缘锯齿 | 不平滑 | 增大 smoothstep 范围 |
| 颜色过曝 | 刺眼 | 限制颜色最大值 |
🚀 扩展思路
| 变体效果 | 核心改动 | 难度 |
|---|---|---|
| 彩虹太阳 | 多色渐变 | ⭐ |
| 脉动效果 | 圆大小呼吸 | ⭐ |
| 扫描线 | 垂直移动 | ⭐ |
| 3D 球体 | SphereGeometry | ⭐⭐ |
| 动态背景 | 添加云层 | ⭐⭐⭐ |
本文档由 ThreeLab 编辑整理,如需转载,请注明出处。








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