从入门到进阶:几何节点的真正威力
Blender 几何节点(Geometry Nodes)让3D建模从"手工雕刻"进化到"程序化设计"。掌握基础节点后,你会发现真正有价值的应用是用节点驱动复杂场景的批量生成——比如程序化城市街道、树林、建筑外立面。本文专注进阶实战,带你完成两个有实际价值的程序化场景项目。
一、程序化建筑外立面生成
建筑外立面由重复的窗户单元组成,是程序化建模的经典场景。
Step 1:准备建筑基础体
- 创建一个Box,代表建筑主体(如20m×60m×30m)
- 选中这个Box,添加几何节点修改器
- 进入几何节点编辑器,从基础Node Group开始构建
Step 2:在面上分布窗户
核心节点链:Input Geometry → Face → Distribute Points on Faces → Instance on Points → Output
- 使用Distribute Points on Faces节点,模式选Poisson Disk(均匀分布)
- 接入Instance on Points,将预制的窗户Object实例化到每个分布点
- 添加Rotate Instances节点,根据面法线对齐窗户方向
- 通过Input/Output Group节点暴露密度参数,方便实时调整
Step 3:只在侧面放置窗户
关键技巧:用法线过滤面
- 添加Normal节点获取每个面的法向量
- 接入Dot Product节点,与上向量(0,0,1)点乘
- 当点积接近0时代表是侧面(法线水平),用Math→Compare过滤
- 将过滤结果接入Distribute Points的Selection输入端
Step 4:添加楼层线装饰
- 使用Mesh Line节点生成等间距的水平点
- 接入Curve Circle将点扩展为圆形曲线
- 用Curve to Mesh配合Profile Curve生成腰线几何体
- 通过Realize Instances将实例合并为真实几何
二、程序化树林与植被分布
核心思路:地形权重驱动植被密度
在真实地形场景中,植被分布受坡度和高度影响:低地多树,陡坡无树。几何节点可以完美模拟这一规律。
Step 1:生成地形权重图
- 准备地形Mesh(已通过Displace修改器生成起伏)
- 新建几何节点,使用Position节点获取每个顶点坐标
- 取Z分量(高度),接入Map Range节点归一化到0-1
- 低高度区域权重值高,高处权重值低
Step 2:坡度过滤
- 使用Normal节点获取面法线,取Z分量
- Z接近1代表水平,接近0代表垂直;陡峭区域不种树
- 用Math→Greater Than过滤坡度大于0.3的区域
- 将高度权重与坡度过滤结果相乘,得到综合权重
Step 3:实例化多种树木
- 准备3种不同树木Object(低/中/高类型)
- 在Instance on Points中,通过Index Switch节点随机选择树木类型
- 添加Random Value节点驱动树木缩放(80%-120%随机化)
- 用Rotate Instances随机旋转Z轴,避免重复感
Step 4:将节点参数暴露为可调节控件
- 将树木密度、最小高度过滤阈值、随机种子等参数连接到Group Input节点
- 在几何节点修改器面板中,这些参数会出现为可调节的滑块
- 实时调整参数观察场景变化,无需重新进入节点编辑器
三、几何节点常用实用技巧
技巧1:Field与Attribute的理解
几何节点中的"场"(Field)是懒求值的,只有在需要时才计算。理解这个概念能帮你避免很多"节点连接了但没效果"的困惑——确认Field的传递路径是正确的。
技巧2:使用Named Attributes传递自定义属性
- 通过Store Named Attribute存储自定义属性(如"plant_type")
- 在材质编辑器中用Attribute节点读取,实现几何节点驱动材质变化
技巧3:Node Group复用
- 将常用节点组(如随机实例化、法线过滤)封装为Node Group(Ctrl+G)
- 命名保存后可在其他项目中直接追加(File→Append)
- 这是提高效率的最佳实践,不用每次从头连接
技巧4:电子表格窗口监控属性
开启Spreadsheet窗口(Shift+Space→Data→Spreadsheet),可以实时查看每个顶点/面/点云的属性值,帮助调试复杂节点逻辑。
四、性能优化:几何节点场景不卡顿的技巧
- 在视口中使用Instances(不要提前Realize),实例化对象共享显存
- 使用Merge by Distance合并过近的顶点,减少不必要的几何复杂度
- 复杂场景在视口使用简化代理(LOD),最终渲染时换回高精度
- 使用Switch节点配合Boolean Group Input,快速切换高低精度预览模式
总结
几何节点的进阶实战核心是理解三件事:如何获取几何体属性(Position/Normal/Index)、如何过滤和选择(Compare/Boolean/Switch)、如何实例化和分布(Distribute/Instance on Points)。这三条逻辑打通之后,城市场景、自然植被、程序化建筑全都能用节点驱动,效率是手工建模的数十倍。
参考资料:知乎Blender几何节点程序化建模章节、CSDN Blender几何节点完整指南、Bilibili Blender几何节点技巧教程
