而像在编辑器里过程化生成的湖泊,电线杆等信息,就是设置一个公共的资源目录保存对应的Mask,在每次编辑器里调用过程化工具生成时,使用Python脚本加载对应Mask图,使用Mask By Object节点生根据场景成Mask,再用Python把过程化场景的信息作为Mask保存起来。或者是把每次过程化生成的信息保存,然后在统一Cook时输出Mask信息到2D贴图里。
Age
如何在正确的位置摆放对应Size和Scale的植被,是通过让植被的Age与Size对应,来选择摆放多大尺寸的树木。前文也提到,自然的树林是边缘的树龄小,中心的树龄大的分布。通过面板上的Age Max Distance的值,基于Viability的Volume值收缩一定距离后再生成SDF,作为Age使用。再根据Age对Size的Influence和Age Ramp,得到对应树木的Size。
Density
通常是使用Houdini的Scatter设置一定的密度值,再将Viability的Mask转为Point Could。但默认的方式转换,每个Point自身没有Size信息,当密度过大,或者Scatter不同Size的植被时,很容易会出现同一种植被相互叠加的情况。所以这里要将Size转算为Density值,Size越大,Density越小。