Three.js 极光效果 | 三维可视化 / AI 提示词

📋 AI 提示词

prompt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
使用 Three.js 实现【极光效果】,具体要求:

【核心特效】
- 多层极光带流动
- 颜色渐变(绿→蓝→紫)
- 发光效果增强视觉冲击
- 星光点缀背景

【场景与光照】
- 黑色背景突出极光效果
- 无额外光源(自发光)

【交互与控制】
- OrbitControls 轨道控制器
- GUI 面板调整参数

【技术要求】
- Three.js r150+
- ShaderMaterial 自定义着色器
- GSAP 动画库

🖼️ 效果预览

极光效果

🎮 案例演示

立即体验


📖 效果拆解

层次 视觉效果 技术实现
基础 平面几何体 PlaneGeometry(8, 6, 64, 48)
核心特效 极光流动 多层正弦函数叠加
增强细节 颜色渐变 根据强度混合三色
视觉效果 发光效果 径向渐变 + 脉冲
附加效果 星光点缀 高频正弦函数

🔧 核心技术点

1. 极光流动函数

多层流动叠加创造自然效果:

glsl
1
2
3
4
5
6
7
8
9
10
11
float auroraFlow(vec2 uv, float time) {
    float flow = 0.0;
    for (int i = 0; i < 3; i++) {
        float layer = float(i) * 0.3;
        float speed = flowSpeed * (1.0 + layer * 0.5);
        float xFlow = sin(uv.x * waveFrequency + time * speed + layer * 3.14);
        float yWave = sin(uv.y * 10.0 + time * speed * 0.5) * 0.5 + 0.5;
        flow += (xFlow * yWave) * (1.0 - layer * 0.3);
    }
    return flow * 0.5 + 0.5;
}

三层流动叠加,每层速度和相位不同,模拟真实极光的层次感。

2. 颜色映射

根据强度值混合三种颜色:

glsl
1
2
3
4
5
6
7
8
9
10
11
12
vec3 auroraColorMap(float intensity) {
    vec3 color1 = vec3(0.0, 0.8, 0.4);  // 绿色
    vec3 color2 = vec3(0.2, 0.4, 1.0);  // 蓝色
    vec3 color3 = vec3(0.8, 0.2, 0.8);  // 紫色

    if (intensity < 0.3) {
        return mix(color1, color2, intensity / 0.3);
    } else if (intensity < 0.6) {
        return mix(color2, color3, (intensity - 0.3) / 0.3);
    } else {
        return color3;
    }
}

模拟真实极光的颜色过渡——绿色为主,过渡到蓝色和紫色。

3. 发光效果

中心区域的柔和发光:

glsl
1
2
3
4
5
float glowEffect(vec2 uv, float time) {
    float dist = length(uv - vec2(0.5, 0.3));
    float pulse = sin(time * 2.0) * 0.5 + 0.5;
    return smoothstep(0.4, 0.0, dist) * pulse;
}

发光中心偏上(y=0.3),模拟极光带的分布。

4. 星光点缀

添加背景星星增强氛围:

glsl
1
2
float stars = sin(uv.x * 50.0 + time) * sin(uv.y * 50.0 + time) * 0.1;
color += stars;

高频正弦波创造闪烁的星星效果。


💡 调试与优化

问题类型 表现形式 解决方案
流动不明显 效果微弱 增大 flowSpeed 值
颜色过渡生硬 颜色跳跃 调整阈值(0.3 和 0.6)
星光过多 画面杂乱 降低星星振幅(0.1)
性能问题 帧率下降 减少迭代次数或降低几何体分段数

🚀 扩展思路

变体效果 核心改动 难度
动态天空 添加渐变天空背景 ⭐⭐
极光动画 添加极光带的形态变化 ⭐⭐⭐
3D极光 将效果应用到球形天空盒 ⭐⭐⭐
相机跟随 添加第一人称视角漫游 ⭐⭐

本文档由 ThreeLab 编辑整理,如需转载,请注明出处。