关于 threejs-raymarched-space-effects
用于 Three.js 曲面或有界空间特效的数值光线积分技能,介绍黑洞和虫洞渲染中的积分、采样、稳定性与着色方法。
主要功能
- 01定义特效空间变换与相机光线
- 02带提前终止的有界光线积分
- 03连续检测与薄结构的交叉
- 04按光线束足迹采样背景
- 05积分诊断与稳定性指导
适用场景
- 01渲染黑洞透镜效应和吸积盘
- 02构建虫洞穿越特效
- 03减少透镜化星空的混叠
- 04诊断光线路径和终止条件
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ scottstts/ threejs-awesome-graphics-agent-skills --skill threejs-raymarched-space-effects安装后在 Claude Code 中输入/threejs-raymarched-space-effects确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamlexamples/curved-ray-accretion-volume/curved-ray-effect.jsexamples/schwarzschild-geodesic-black-hole/geodesic-black-hole-effect.jsexamples/traversable-wormhole-transit/celestial-spheres.jswormhole-effect.jsreferences/lensed-celestial-spheres.mdcurved-ray-integrators.md详细介绍
光线步进空间特效
将这些特效视为具有显式积分状态的数值渲染器。其视觉特征取决于坐标的选择、步进策略,以及光线与发光结构的交互方式。
此技能包含示范性示例和素材,不止是描述性指导;值得深入研究、参考,甚至复制。相关时请充分利用,切勿盲目跳过。
工作流
- 定义特效空间变换和相机光线。
- 选择物理、受物理启发或纯艺术性的弯曲模型。
- 限定积分域。
- 跟踪光线位置、方向、透射率和累积辐射亮度。
- 检测光线与圆盘、壳层、喉部或事件边界的交点。
- 仅在积分终止后采样背景,并根据光线束覆盖范围进行过滤,而不是进行点采样。
- 添加轨迹、步数和终止原因诊断。
阅读 references/curved-ray-integrators.md,了解两种虫洞喉部模型、穿过喉部的观察者传输、艺术化弯曲光线吸积积分器、圆盘合成以及实现缺陷。
阅读 references/lensed-celestial-spheres.md,了解覆盖范围过滤后的天空、保光通量的恒星点扩散、尘埃消光、显示裁切下的明亮光源、渐进式累积,以及紧凑光源所需的泛光核。
阅读弯曲光线吸积体积,了解反平方偏转循环、薄圆盘密度、由前向后累积、确定性恒星环境,以及积分器诊断。
阅读Schwarzschild 测地线黑洞特效,了解 RK2 零测地线积分、插值赤道圆盘交点、多普勒/红移圆盘发射、透镜化程序化深空背景,以及 HDR 泛光合成。
阅读可穿越虫洞穿越特效,了解对简化测地线系统进行自适应 RK4 积分、平行传输穿过喉部的观察者坐标系、外部区域选择、渐进式 Halton 累积,以及 13 抽头泛光金字塔;其天球是独立的 GLSL 代码块,用于覆盖范围过滤后的星系天空、解析出的恒星图层,以及透镜光线所落在的解析环行行星。
约束
- 不要把 UV 旋涡称为“引力透镜”。
- 限制迭代次数,并提供提前终止机制。
- 对薄结构使用连续交点测试。
- 确保数值稳定性不受帧率影响。
- 将积分器与吸积盘或虫洞内部的着色分离。
- 如果度规具有透镜肩部等狭窄特征,应根据局部曲率尺度而非全局常量确定步长。
- 根据光线束覆盖范围过滤背景。透镜化映射会压缩立体角,因此在图像最有趣的位置进行点采样时会产生混叠。
- 为达到上限的光线指定明确结果。其出射方向是任意的,因此应将其导入平均辐射亮度路径,而不是让它们产生斑点。
- 当定义域不存在全局笛卡尔坐标图时,应携带传输坐标系,而非笛卡尔相机。
- 为非主视角提供成本更低的近似方案。
路由边界
普通粒子、轨迹、等离子体和事件特效请使用 $threejs-procedural-vfx。此技能适用于穿过弯曲或有界空间特效域的逐像素数值光线积分。
虫洞示例中的渐进式累积和泛光金字塔归该渲染器所有,因为积分成本迫使其采用这些技术。对于普通几何体的全场景 HDR 泛光处理,请使用 $threejs-bloom;对于曝光测光、色调映射归属和 LUT 调色,请使用 $threejs-exposure-color-grading。