mcpField
T
threejs-black-holes-and-space-effects

threejs-black-holes-and-space-effects

github.com/linegel创意与媒体11128 次安装5 周前更新
代码仓库

关于 threejs-black-holes-and-space-effects

threejs-black-holes-and-space-effects 是用于 Three.js 曲线光线效果的技能,面向实现风格化效果或球对称时空射线追踪的开发者。它区分艺术效果、Ellis 虫洞与 Schwarzschild 模型,并要求按模型验证数值结果;Kerr 模型需外部求解器。

主要功能

  1. 01选择艺术效果或受支持的度规模型
  2. 02执行有界光线积分与连续事件检测
  3. 03计算逃逸方向及辐射传输
  4. 04为静态球对称透镜选择直接计算或映射复用
  5. 05通过参考解、收敛性和诊断验证

适用场景

  1. 01制作风格化弯曲光线与发光盘
  2. 02模拟 Ellis 虫洞的光线穿越或转向
  3. 03渲染 Schwarzschild 引力透镜或薄盘

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/linegel/threejs-complete-set-of-skill --skill threejs-black-holes-and-space-effects

安装后在 Claude Code 中输入/threejs-black-holes-and-space-effects确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

LICENSE
agents/
openai.yaml
references/
artistic-rays-and-disks.md
lens-cache-and-history.md
metric-rays.md

详细介绍

曲线路径空间效应

此技能仅负责三类原生主张:艺术性形变、Ellis 零测地线解,或 Schwarzschild 零测地线解。Kerr 结果由经过独立验证的外部求解器负责;如果没有这样的求解器,则返回 unsupported-model。仅靠数值积分并不能让艺术性场变成度规解。

1. 选择主张

请求的可观测结果选择条件参考完成标准
风格化弯曲、有界辉光或装饰性吸积盘艺术性有界射线阅读 artistic-rays-and-disks.md。实现及其文档均标明 artistic,且固定视角下的细化结果能限制可见变化。
穿越或绕过超静态球形喉部Ellis 虫洞阅读 metric-rays.md 中的 Ellis 部分。明确给出喉部尺度、外部映射、不变量,以及 B < 1、B = 1、B > 1 三种状态。
非旋转黑洞引力透镜或物理薄吸积盘图像Schwarzschild阅读 metric-rays.md 中的 Schwarzschild 和物理传输部分。明确给出质量尺度、事件视界、光子球、临界撞击参数、不变量、连续事件以及观察者/发射体参考系。
旋转黑洞此处不支持将经过独立验证的 Kerr 求解器集成为外部射线/传输生成器;透镜映射是可选的复用形式。求解器提供其度规/符号约定、运动常数、标架、事件语义和独立收敛证据;否则返回不支持模型的结果。

**完成标准:**恰好由一种主张负责射线路径,且每项视觉主张都不强于对应分支的证据。

2. 声明数值域

开始编写推进过程前,先定义:

  • 效果到世界坐标的变换,以及有限的局部积分上限;
  • 相机事件、射线原点、归一化方向和外部侧;
  • 用于位置、步长、视界/核心及介质系数的一套长度基准;
  • 状态向量、其积分参数、负责方及有效时间;
  • 环境朝向,以及用于逃逸射线查找的正交标架;
  • 推进前的结果 miss、setup-rejected 和 unsupported-model;适用的连续视界、核心、吸积盘、壳层和代理退出表面;以及无效状态、不透明度、步数上限和尝试次数上限对应的结果。

对于度规射线,使用 Ellis 喉部半径 a 或 Schwarzschild 质量长度 M = G M_SI / c^2 进行无量纲化,同时保留转换回米的关系。渲染 delta 绝不能变成射线步长。通过相似变换保留任一球对称度规:平移、旋转和均匀缩放。非均匀变换需要明确推导变换后的度规和标架,并重新验证不变量、事件和收敛性;否则应在设置阶段拒绝。

非定常度规需要外部求解器:该求解器须能积分或恢复坐标时间,并在每次映射后的积分计算中,对度规和发射体状态进行采样或插值,同时提供有效性和误差。只有在声明的演化误差门限通过时,冻结度规才可作为准静态近似;否则应报告模型不受支持。

**完成标准:**每个状态分量和事件表面都有声明的基准、负责方和有限有效域,且世界坐标到求解器坐标再到渲染坐标的往返变换能保留选定尺度和外部侧。每种球对称度规都使用相似变换,或提供经过验证的变换度规证据;每项非定常主张都使用映射后的坐标时间采样、明确标为通过演化误差门限的准静态近似,或标为不受支持。

3. 构建一次有界行进

使用 WebGPURenderer 和 TSL 节点函数。初始化渲染器,并在选择计算、存储或 MRT 资源前确认 WebGPU 后端。标准行进流程如下:

  1. 将相机射线变换到效果空间,并与有限边界求交。未命中时,在进行数值计算前返回 miss。初始状态不符合要求、变换不受支持,或帧/域无效时,在行进前返回 setup-rejected。请求的模型没有受支持的原生分支或获准的外部求解器时,返回 unsupported-model。
  2. 初始化位置、切向量或正则动量、辐射、透射率、事件状态、已接受步数和终止 ID。
  3. 提出一个候选线段。误差控制导致的拒绝只会改变下一次尝试的步长。
  4. 在整条线段上连续定位所有适用事件。对最早事件进行根细化;多个盘面交点均有贡献时,保留其顺序。
  5. 累积已接受线段的传输,然后仅提交一次状态推进,并将已接受步数递增一次。
  6. 行进开始后,以 escaped、horizon、core、opaque、invalid、unresolved-critical、minimum-step、step-cap 或 attempt-cap 终止。

尝试次数上限独立于已接受步数上限,约束发散计算。step-cap 限制已提交的已接受步数;attempt-cap 限制已接受和已拒绝的尝试总数。曲率或距离启发式可以提出步长;是否准确则由与更严格解的细化比较决定。

完成标准: 追踪记录证明每个已接受步数只对应一次已提交的推进;被拒绝的尝试不会改变物理状态和事件状态;每个输入都会收到 miss、setup-rejected、unsupported-model 或明确的行进终止 ID;事件残差符合其声明的界限。

4. 解析传输并确定逃逸方向

仅对 escaped 射线采样外部环境。根据声明的正交归一标架中的积分出射切向量,重建环境贴图的查询方向;轨道位置角本身并不是方向。对代理模型截断的任何远场尾部进行约束或积分。

确保传输方式与所依据的结论一致:

  • 艺术化吸积盘声明场景长度基准和线性 HDR 光源基准。从前到后积分消光/发射,并将结果标记为艺术化。
  • 物理吸积盘使用按顺序排列的测地线交点、具名发射体四速度和观测者标架,以及不变量频率传输。其几何结构和轨道模型必须与所选的 Schwarzschild 结论一致。

以线性 HDR 累积。由一个管线阶段负责色调映射和输出转换;替换输出的诊断会将管线图标记为脏。

完成标准: 未命中和非逃逸终止状态无法采样外部环境;逃逸切向量有限且已归一化;吸积盘交点保留其顺序;传输单位可化简为辐射亮度。

5. 选择直接计算或复用

对于透镜不断变化、探测点稀疏或单像素计算量符合目标的艺术化场,可使用直接有界行进。对于静态球对称 Ellis 或 Schwarzschild 透镜,如果相干复用优于直接积分,则使用临界区分割传输映射。对于分离轨道附近的区域,如果 GPU float32 直接射线无法满足角度门限,则使用局部高精度映射。

选择透镜映射、计算缓存或时间重建时,请先阅读 lens-cache-and-history.md,再进行分配。保持不透明场景和所需深度为其要求的分辨率;仅缩放经过误差测量的效果通道。

完成标准: 每个缓存或历史资源都有复用理由、稳定标识、失效规则、完成/生命周期规则,以及相较于直接路径的实测收益。

6. 验证所选主张

使用确定性、带种子的环境,其中包含高频方向特征,以便角度、临界曲线和历史误差保持可见。这是由项目生成的验证输入,并非随附的视觉预设。

对于每个分支:

  • 记录终止状态、接受/拒绝的尝试次数、事件数量/位置、剩余透射率、最终方向和无效状态诊断信息;
  • 在固定光线和摄像机下,比较 h、h/2 和 h/4,或等效的容差序列;
  • 将最终角度误差与环境足迹进行比较,并将事件残差与相关几何厚度进行比较;
  • 验证边界移动、均匀缩放、摄像机位于内部、未命中和远离原点的情况,并验证是否拒绝非均匀缩放,或是否使用了明确变换后的度量;
  • 验证所需的 Three.js 版本、后端、最终输出的归属方、调整大小、重置和释放行为。

如果细化后仍能在固定视图中保持轮廓、终止类别、有序的圆盘事件以及声明范围内的辐射度,则艺术光线通过验证。Ellis 和 Schwarzschild 光线还必须具备独立的 CPU float64 参考、不变量漂移、临界区间分类、外部区域/逃逸一致性,以及最终四元标架方向的收敛性。达到上限、步长最小、无效或临界状态未解析的光线属于诊断输出,而非物理证据。

完成标准: 每个请求的可观测量都通过特定分支的门槛,诊断信息能够显示每种失败类别,最终主张列出仍然存在的数值和适用范围限制。

评论

支持 Markdown