mcpField
T
threejs-raymarched-space-effects

threejs-raymarched-space-effects

github.com/scottstts创意与媒体946101 次安装6 天前更新
代码仓库

关于 threejs-raymarched-space-effects

用于 Three.js 曲面或有界空间特效的数值光线积分技能,介绍黑洞和虫洞渲染中的积分、采样、稳定性与着色方法。

主要功能

  1. 01定义特效空间变换与相机光线
  2. 02带提前终止的有界光线积分
  3. 03连续检测与薄结构的交叉
  4. 04按光线束足迹采样背景
  5. 05积分诊断与稳定性指导

适用场景

  1. 01渲染黑洞透镜效应和吸积盘
  2. 02构建虫洞穿越特效
  3. 03减少透镜化星空的混叠
  4. 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.yaml
examples/curved-ray-accretion-volume/
curved-ray-effect.js
examples/schwarzschild-geodesic-black-hole/
geodesic-black-hole-effect.js
examples/traversable-wormhole-transit/
celestial-spheres.js
wormhole-effect.js
references/
lensed-celestial-spheres.md
curved-ray-integrators.md

详细介绍

光线步进空间特效

将这些特效视为具有显式积分状态的数值渲染器。其视觉特征取决于坐标的选择、步进策略,以及光线与发光结构的交互方式。

此技能包含示范性示例和素材,不止是描述性指导;值得深入研究、参考,甚至复制。相关时请充分利用,切勿盲目跳过。

工作流

  1. 定义特效空间变换和相机光线。
  2. 选择物理、受物理启发或纯艺术性的弯曲模型。
  3. 限定积分域。
  4. 跟踪光线位置、方向、透射率和累积辐射亮度。
  5. 检测光线与圆盘、壳层、喉部或事件边界的交点。
  6. 仅在积分终止后采样背景,并根据光线束覆盖范围进行过滤,而不是进行点采样。
  7. 添加轨迹、步数和终止原因诊断。

阅读 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。

评论

支持 Markdown