前言:关于大地形美术资产制作部分的houdini程序化树木部分,原houdini内置有Labs Quick Basic Trees节点,以下步骤均基于此节点优化魔改;  效果预览:
tip:其中树叶贴图及地形颜色变化通过在材质中对贴图采样来实现,贴图则在Houdini地形制作过程中就预先手动依据地形绘制好了再烘培出来(请忽略还没来得及做完的卡通水材质><
 优化法线后的远景可达到较好的卡通渲染样式: 
核心要点记录
将内置Tree节点的三片平铺树叶改为游戏中常用的三向树叶,记得使用UVProject放置UV; 
为每个树枝添加随机朝向

cluster根据世界空间位置创建树叶集群(并新建同名属性分组),color根据其属性分别显示,提升为图元属性,在图元循环中遍历每个集群的bound并重新拓扑,ray检索重拓扑形状和原形状取最小距离,

ray第一接口接收参考目标,第二接口接收要转换的形状;做平滑处理后用peak节点将树冠扩大(沿法线平移);计算法线后将该形状撒点,设置pscale属性控制叶片大小;cross(@N,{0,1,0})创建与法线相切的向量,帮助几何定向;  
对于树枝分支,截取枝干点pscale设置阈值removepoint移除外端的树干,将树枝的点做随机抖动并用此前生成的树冠放置射线检测控制树叶生成点围绕树冠生成,且根据传递来的法线做树叶的随机旋转;  
取整棵树bound并做ray取值获取整颗树冠,平滑计算点法线(使用顶点法线计算量大得多)后得到基于树冠形状的树叶法线;用polyfill填充树干断面,删除迭代生成的末端树枝减少多边形面数以优化负载 
使用quickMaterial分组后赋予材质 UE也可自编译LOD组  
制作成果be like: 
|