GARGANTUA 超大质量黑洞光线追踪可视化工具 — 在线实时史瓦西黑洞吸积盘渲染器
GARGANTUA 是一个基于 WebGL 的史瓦西度规(Schwarzschild metric)零测地线光线追踪(null-geodesic raytracing)可视化工具。它模拟了超大质量黑洞周围的光线弯曲效应、引力透镜(gravitational lensing)、相对论性吸积盘辐射,以及多普勒频移和引力红移等物理现象。所有渲染在浏览器端通过 GPU 并行计算完成,无需上传数据到服务器。
核心物理模型
本工具采用几何单位制(c = G = 1),以史瓦西半径 RS = 1.0 为基准长度单位。每像素发射一条光子,沿 Schwarzschild 时空中积分零测地线方程,步长根据距中心距离自适应调整:靠近黑洞事件视界处使用更小的积分步长以确保精度。
- 零测地线数值积分:最多 600 步/像素,支持三档质量等级(Standard 200 / High 320 / Cinematic 460 步)
- Novikov-Thorne 吸积盘通量模型:基于 ISCO(最内稳定圆轨道,3 RS)的薄盘辐射分布
- 黑体谱温度映射 + 相对论多普勒增亮 + 引力红移修正
- FBM 噪声驱动的湍流纹理,含切向条纹和暗带结构
- 程序化银河系背景 + 四层哈希星空分布
交互功能
相机控制
- 拖拽 — 轨道旋转视角
- 滚轮/捏合 — 缩放距离
- 自动轨道 — 持续环绕旋转
- 电影序列 — Catmull-Rom 样条插值的 8 关键帧闭环飞行路径
预设视角
- POSTER 38° — 海报级经典视角
- EDGE-ON — 盘面边缘对齐视角,展现最大引力透镜弧
- POLAR — 极区俯视,观察吸积盘完整环状结构
- CLOSE PASS — 近距离掠过,体验强引力场畸变
可调参数
点击界面右下角的 PARAMS 按钮打开参数面板,可实时调整以下物理和渲染参数:
| 参数 | 说明 | 范围 |
|---|---|---|
| GEODESIC STEPS | 光线追踪积分步数 | 60–600 |
| DISK INNER EDGE | 吸积盘内边缘半径 | 2.0–4.0 RS |
| DISK OUTER EDGE | 吸积盘外边缘半径 | 10–80 RS |
| DOPPLER BOOST | 多普勒增亮上限 | 1.0–3.0 |
| BLOOM STRENGTH/RADIUS/THRESHOLD | 辉光后处理参数 | 0–1.5 |
| VIGNETTE / GRAIN / CA | 晕影 / 胶片颗粒 / 色差 | 0–0.15 / 0–0.01 |
| DEBUG VIEW (0–9) | 调试可视化模式 | 0–9 |
技术实现
渲染管线采用全屏四边形(fullscreen quad)+ 片元着色器架构,而非传统 Three.js 几何体渲染。主射线着色器执行逐像素的零测地线积分;结果经 UnrealBloomPass 辉光处理后再由合成着色器施加手动 ACES 色调映射、径向色散、晕影和胶片颗粒效果。整个管线运行在 Half Float HDR 渲染目标上以获得最佳动态范围。
Rendering Pipeline:
[Ray Fragment Shader] → Geodesic Integration → Disk Emission & Background
↓
[RenderPass] → Fullscreen Quad
↓
[UnrealBloomPass] → Bloom (strength/radius/threshold)
↓
[Composite ShaderPass] → ACES ToneMap + CA + Vignette + Grain
↓
Screen Output (HalfFloat HDR RT)快捷键
1-4预设视角C电影序列R自动轨道P参数面板HHUD 显示
适用场景
- 天文学教育和科普演示 — 直观理解广义相对论的时空弯曲效应
- 科幻视觉参考 — 电影《星际穿越》中 GARGANTUA 黑洞的视觉效果复现
- WebGL / 着色器编程学习 — 实时光线追踪和后处理管线的完整示例
- 科学可视化研究 — 探索不同参数下黑洞外观的变化规律
