Houdini PDG
Houdini PDG 是在17.5版本中增加的一个流程管理模块,可以用此工具方便的进行分布 生成。在TOP网格中PDG可以直观的描述这些依赖关系,甚至可以分发到其他计算机同时 执行。能更灵活的自动化生产过程。
在这里可以看到更多的关于PDG的教程资料
Houdini PDG 应用在游戏生产中
在Unite 2019大会上,SideFx已经演示过了PDG在Houdini Engine上的应用。在我的理 解中其实就是把一个大的HDA分成数个小HDA,再进入PDG中进行过程管理,形成一条生产 链,可以方便的在中间修改数据,并生成最后的结果。
在官方的文档中可以看到,在Unity中使用Houdini ENgine 是要对插件环境进行配置的。 环境路径的设置必须以HEU_ENVPATH
前缀开头。
示例:
HEU_ENVPATH_MYPATH
故在Unity中导入HoudiniEngine后在Assets目录下创建unity_houdini.env文件 文件内写入以下路径,并在Engine设置中刷新工作目录。
HEU_ENVPATH_JOB = E:/HoudiniManager/PDG_GAMEING_TEST
其中 路径内容是我要让PDG工作的目录,Houdini文件中的PDG Network下,也要进行配置
直接拿那会跟着教程做的HDA来说,现在已经有了三个制作地形需要使用的基本HDA文件

这三个HDA代表了以下三个步骤。
在Houdini中,为了方便使用在unity_houdini.env中设置的环境变量,按Alt+Shift+V 打开环境变量设置,在Variables中,TextPort 分别写入HEU_ENVPATH_JOB、E:/HoudiniManager/PDG_GAMEING_TEST 这样我们就可以方便的直接引用此变量。
之后我们先创建TOP网格和一个空对象,将他们一起Shift+C一下。 并右键创建资源(HDA)。
在TOP网格中的 localscheduler默认的Working Directory 中填入之前设置好的HEU_ENVPATH_JOB
之后创建HDA Proccessor 节点并导入好之前的三个HDA,并按处理顺序连接好。这就是 一个基本的处理HDA流程的TOP网格。

回到Object层级 右键Save Node Type保存(可以把HDA Proccessor中的参数绑到这个TOP的HDA上) 可以实时的在Unity中调整参数重新烘焙结果,这里之前为了方便没这么做。
回到Unity 拖入刚刚在houdini中用TOP网格创建的HDA,再拖进场景。选中对象,点击菜单栏上的HoudiniEngine→PDG→Great PDG Link 可以发现,PDG模块中识别到了这个资源中的TOP网格和网格中的节点,在TOP Node中选择 最后一项ERODE,勾上AutoLoad Results(最后读取Output是这个结果,全勾上就会显示三个) 开始CookNode。烘焙完成后Unity层级中将新建出来一个OUTPUTS的对象,显示结果如下。

另外值得一提的是 在设置地形的时候,大小必须是2的n次幂加一,不然会出现地形无法读取的情况
