mcpField
T
threejs-procedural-planets

threejs-procedural-planets

github.com/scottstts创意与媒体978110 次安装3 周前更新
代码仓库

关于 threejs-procedural-planets

面向 Three.js 行星生成的技能,指导用共享地质场构建地形、材质与大气衔接。它强调从宏观轮廓到生物群系的构建顺序,以及随视距过滤细节。

主要功能

  1. 01共享地质场驱动行星属性
  2. 02宏观轮廓与地质结构构建
  3. 03地形、生物群系和材质联动
  4. 04按网格尺度与高度过滤细节
  5. 05行星材质与大气光照衔接

适用场景

  1. 01生成具有区域地貌的程序化行星
  2. 02构建地形与材质一致的行星表面
  3. 03制作具备视距细节过滤的行星

安装

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

$npx skills add https://github.com/scottstts/threejs-awesome-graphics-agent-skills --skill threejs-procedural-planets

安装后在 Claude Code 中输入/threejs-procedural-planets确认已加载。

包含的文件

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

agents/
openai.yaml
examples/procedural-planet-surface/
planet-system.js
terrain-field.js
references/
planet-field-and-atmosphere-systems.md

详细介绍

程序化行星

将行星构建为一组耦合场,并在单位方向上求值。相同的地质成因必须共同驱动几何形状、颜色、粗糙度、法线、大气衔接和距离滤波。

此技能包含超出说明性指南范围的典型示例和资源,值得学习、参考,甚至直接复制。请在相关时充分使用,切勿盲目跳过。

必需的构建顺序

  1. 确定行星空间方向、半径、海平面和世界单位比例。
  2. 在任何表面材质之前构建宏观轮廓场。
  3. 添加命名的地质结构:大陆、盆地、山脊、陨石坑、熔岩地带或冰层。
  4. 推导坡度、凹陷、海拔、纬度、曝光度和海岸线场。
  5. 根据这些成因划分大范围生物群系。
  6. 根据共享场集合推导位移、颜色、粗糙度和法线。
  7. 根据网格所表示的尺度和相机高度过滤频段。
  8. 使用相同的行星变换,将材质与大气和光照耦合。

阅读 references/planet-field-and-atmosphere-systems.md,了解地形、生物群系、气态巨行星、材质、高度 LOD 和大气衔接机制,其中包括一种已知的 CPU/GPU 场一致性故障模式。

阅读程序化行星表面实现 及其共享地形场,了解未变形球体坐标、共享 CPU/GLSL 地形、耦合的生物群系与材质成因、导数凹凸,以及经过高度滤波的细节。

不可妥协的约束

  • 沿切向进行域扭曲并重新归一化;不要沿径向扭曲球体。
  • 陨石坑必须包含坑底、坑壁、坑缘,以及可选的喷出物,而不能只是深色圆圈。
  • 大陆和生物群系必须是区域场,而不是孤立的阈值气泡。
  • 几何位移和着色器法线必须描述同一个高度函数。
  • 近距离细节可以随高度增加而消失;宏观轮廓则不能。
  • 提供各个场的独立视图和位移夸张模式。

完成测试

在以下情况下,天体必须始终呈现明确的设计意图:

  • 无光照轮廓;
  • 不带大气的平面反照率;
  • 掠射方向光照;
  • 轨道视角;
  • 近距离接近;
  • 生物群系遮罩视图和仅法线视图;
  • 至少三个随机种子,且不失去所选的行星特征。

路由边界

如果需要不含完整天体的可复用场集合,请使用 $threejs-procedural-fields;如果需要与行星生成无关的散射,请使用 $threejs-atmosphere-aerial-perspective。此技能负责耦合的行星表面。

评论

支持 Markdown