All Houdini

Houdini PDG – Section 5

 
 

 
 

新建一个几何节点,然后在里面首先创建一条曲线,如图所示绘制一条。

 
 

然后构建如下的节点结构,意思就是,用户没有输入就用默认的,有的话用用户的。

 
 

然后将 ip_area_generate 节点create digital asset,然后将default curve这一步设置到node选项卡下:

 
 

然后就是加入一些表现节点,最终如下:

红色框出来的就是wangle节点的实现,让其看上去半透明。

最终输出参数可以加上颜色的控制。

 
 

然后我们来看怎么在Unity里面创建区域。

将上面输出的节点直接拖到unity里面,放入场景调整下位置就可以得到下面的结果:

 
 

还可以通过默认的工具做一定的调整:

 
 

至此这个辅助选区工具就做好了。

然后我们再回到ip_level_creation_top节点,我们先给他添加新的参数,传入区域。

houdini里面的参数效果会是这样:

 
 

Unity立面效果如下,我们就可以将前面的工具生成的区域结果传入到这个参数里面。

 
 

然后我们来改造ip_level_creation_top节点,来应用这个区域参数。

首先创建一个wedge节点,要注意的是其数量参数应该是前面Area HDAs里面的数值,因此这边就需要这赋值如下。

还要注意的是attributes里面因为要根据数量来生成参数对应关系,要作如下修改。

 
 

最终的节点图如下,让所有的输出合并为一个几何模型:

 
 

下面我们来讲怎么根据这个几何区域来调整地形,因此上面这坨整合到原来的流程是这样的:

 
 

这边要注意的是,partitionbyindex这个节点的输出是两个模型,因此我们的高度图生成也应该是需要结合两个模型的。

 
 

同时SOP流程也要做相应的改变,Project SOP节点的参数应该是1-2个输入。

节点结构就成了这样:

 
 

 
 

SOP节点内部的改动如下,主要的目标就是新的标记的区域,需要是平整的地面,下面是节点图和效果:

 
 

然后我们来看看Unity里面使用效果。

 
 

如果我们改变一些原来节点的顺序,则效果会更直接,边界会更硬:

unity内效果:

 
 

 
 

对于这块圈出来的地方,我们还不希望有foliage相关的内容在这个平地生成。

首先建立一个文件节点,获取所有的areas

 
 

这里要非常注意的是上面这个文件的获取路径,来源就是final_area_geo的输出位置,如下所示,要保证get_all_areas节点获取的是对应这个存储的文件夹里的所有文件。

 
 

节点在topnet里面的使用:

 
 

同时我们还需要修改一下SOP节点里面的处理流程,首先要对ip_scatter_terrain节点的输入做修改,多加一个参数。

 
 

这里我们首先cook一下上面修改完的tile_partition节点,每个输出都会有三个如下:

 
 

Cook 完这个节点,你使用@pdg_output才不会有警告符号!!!

这样SOP节点的表现如下,有地形,也有标记的area

 
 

SOP内部的节点图修改如下,注意新增加节点的参数。这样就实现了标记区域内不会scatter任何内容。

 
 

Topnet节点内也需要做一定的修改:

 
 

在Unity里面使用即可有效果。

然后我们要做的是在上面标记的区域,scatter一些特殊的内容,比如下面的例子是对上面标记的区域生成草。

 
 

首先我们需要为topnet节点添加参数:

添加上内容:

 
 

内部的获取节点也需要加一个grasses节点,做一定设置如下获取得到前面设置的文件夹下的所有的prefab,注意这边的patten参数就是copy的上面截图的那一行。

 
 

确认下获取的内容是否正确:

 
 

然后在SOP的scatter节点里面,我们首先要做的就是添加一个筛选节点获得所有的CSV列表里面的grasses,做法follow以前的分类添加如下代码:

节点结构更新成这样:

 
 

然后添加一个grass的scatter,如下图所示,主要就是mask一个区域给草的生成:

 
 

细节展示:

 
 

最后instance的节点也需要加一个,专门用来处理grasses的:

 
 

这样就能在Unity里面展示效果了!