All Houdini

Houdini PDG – Section 4

 
 

 
 

首先第一步就是让houdini获取unity工程里面的文件,我们创建一个file pattern节点来做这件事情,主要就是设置对应的文件目录,如果设置正确的话,就可以cook节点成功。

上面用到的unity工程目录和文件如下:

 
 

然后以相同的方法处理石头和灌木,最后合到一起如下:

 
 

下一步就是将这些用到的资源列表存到一张CSV表格里面,让后续步骤使用。这边做法是增加一个CSV导出节点,相关的参数设置如下:

 
 

结果显示:

 
 

然后我们需要建立scatter foliage的hda处理节点,因此首先建一个SOP流程节点并digital一下:

暂时这里面面没啥逻辑。

 
 

然后topnet节点里面建立如下逻辑,注意参数设置。

 
 

下面就是正式的调整刷权重,看哪些地方要被覆盖内容。可以按照下面的做法得到基本的效果,具体参数可以自己尝试。一些重点设置做了红框处理:

 
 

 
 

 
 

在这之后,就是分别对石头,树和灌木的位置,在上面的已经mask出来的区域,撒点建立位置。

 
 

但是这边要注意的是,石头所在的位置是不应该有灌木和树木的,因此需要为两者添加remove points close to rocks 这个节点,就是让两者的位置原理石头的位置,这个节点的实现如下:

 
 

下一步需要设定我们前面生成的csv文件,使用的是table import节点,注意参数设置要和文件内容一致:

这边还需要处理的是,对于表格文件的头要去掉,用blast节点来实现:

这样以后数据如下:

 
 

我们还需要对路径做处理,真正使用的是相对路径,因此我们需要做下面的处理,左边是效果展示,去掉了前面的绝对路径。

 
 

然后这节点里面还可以实现的是对于路径的分类,我们检测其string位置来添加一个type节点来标志这个路径是石头还是树木还是草丛啥的:

 
 

然后下面就可以通过blast来选出不同类型的表格条目,比如下面是选出树木的条目:

 
 

然后这个文件列表就可以用在上面的生成的顶点上了,我们通过新建wangle节点,来实现在每个生成的顶点的参数上面,添加一个字段,我们命名为unity_instance,并通过查表的方式,对于不同类型的顶点,为他在对应类型的列表里面随机获取一个值填入,结果如下图左边所示:

 
 

最终的节点图:

 
 

然后还可以开放一下参数:

 
 

然后就可以用在Top节点里面正常cook:

 
 

最后的最后,还需要调整一些细节,比如说树的大小,树全是竖直向上生长的,而不是垂直于地表,因此需要调整一下生成的normal:

 
 

最后Top节点的参数也需要暴露一下如下:

 
 

然后我们在unity里面使用,但是这里同样遇到了路径的问题!!!

因此先挂起,后面先学习一个Unreal里面使用的视频再回头继续这个教程!!!