Geometry Nodes 技能用于在 Blender 中搭建可复用的程序化系统。适合表面散布(岩石、植被、碎石)、参数化建筑/道路/管线/电缆、批量随机变化、资产套件装配,以及大型场景的非破坏性迭代。
主要能力包括:
- 散布系统:从网格表面用 Distribute Points on Faces、Instance on Points,配合随机旋转与缩放,可选 Realize 生成实际几何。
- 建筑生成器:按楼层数输入重复网格、堆叠实例、开窗与材质变化。
- 电缆与管线:输入曲线,转为网格轮廓并细分、赋材质,从单路径节点生成多条曲线。
- 岩石形态:球体加噪声位移和简化后参与散布。
- 随机参数:缩放常见 0.8–1.2,绕 Z 旋转 0–360°,密度 0.1–2.0 每平方米,种子为整数以保证可复现;种子应作为组输入暴露。
使用方式上,该技能建议先定义参数,再构建节点树并创建 GN_ 前缀节点组,测试变化后再决定烘焙或实例化,最后做导出集成。该技能提供 scripts/scatter_points.py,可在表面对象上生成可复用的散布修改器,把密度、种子和缩放范围暴露为修改器输入;脚本可在 Blender 5.2 中通过 execute_blender_code 或以 runpy 路径方式运行,参数包括表面对象、集合、密度、种子、缩放最小/最大值、是否对齐法线、是否 Realize。
性能方面,建议游戏导出时将实例转为实体、简化并导出网格;背景散布保留实例并限制数量,主视角的程序化内容烘焙为静态网格,视口预览限制实例数量。导出前可应用修改器、Realize 并合并,或在引擎支持实例时按引擎方式导出,并记录各目标引擎的策略。
限制与注意事项:必须创建可复用节点组而非一次性节点树,暴露种子与密度输入,测试参数的最小/最大边界,游戏导出前进行烘焙或实体化,并用 GN_ 前缀命名;不应为 Blender 5.2 之前的版本编写代码或版本兼容分支,不应在没有 LOD 与剔除方案时进行百万级实例散布,避免嵌套 Realize、硬编码本应作为输入的值、未经面数验证就导出程序化内容、省略边界变化测试。