本文经授权转自公号:CG怪咖
在实际生产项目中,毛发解算环节,时常会遇到一些特殊需求,诸如,毛发打湿,或者是堆积,掉落,碎屑等效果。
一般来说,都会考虑在一个软件系统内完成这类效果是最方便,但大部分时候,解算和特效往往是相对独立的环节,大部分解算制作人员都使用Maya,在这种情况下,要完成这类特殊效果,就显得力不从心,大部分商用的毛发软件在特效交互这块,都比较弱(了解不多,如果有具体的案例,可以在留言区讨论),因此,如何将Maya中的毛发转入Houdini是一个现实可行的方案。
那问题来了,如何转换这一堆毛发喃。转换全部毛发数据量,还是只导出guide curve进到Houdni做解算,然后在Houdini做毛发插值,我们分别讨论实际项目中的可行性,我们先说第2种。
导出guide curve
这里又分两种
2.重新在Houdini还原造型,包括shader部分,这样可以避开开发上难度需求,基本上Houdini现有的毛发体系要完成复杂的交互效果都应该可以完成,开发难度相对上一种方式来说就小很多了,但这类方法有个最大的问题,就是如何保证造型和Maya资产完全一致,大部分公司的毛发造型都还是再Maya下面,当然,是可以把造型都换到Houdini来做(把毛发环节整体放到Houdini来做是否对流程的改变很大,数据的交互问题,渲染是在什么地方做,这都是一系列的问题,对动画项目来说,流程的要求相比影视来说更加苛刻,渲染的统一性是大趋势,即在一个框架下做灯光渲染,比如Maya、Katana,如果抛开以上流程要求,是可以在Houdini里完成全部操作,但这不是本次文章标题所需要讨论的部分)。分析到这里,我们总结一下,这两种方式的利弊。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
|
2. 不同毛发系统在导出过程中过于繁琐,假如一个资产混有不同插件的毛线系统时候,转换方案就各不相同,且跑解算缓存时还需要反复跑,在实际项目中怪咖本人就遇到过比较极端的例子,xgen非交互式+xgen交互式+nhair的毛发系统。
说了那么多废话,其实想要满足上述要求的最好方式,就是通过渲染器导出代理,也不需要开发什么额外的工具,是不是觉得很失望啊……..咱们接着往下说,不然也不会绕怎么大个圈子来说这事,还专门写文来说。这里我们使用Arnold渲染器来说明一下,文中也说了导入Houdini是为了做解算而非渲染,所以在导出代理的基础上我们为Hoduini添加了自定义节点来读取代理文件,节点如下图所示:

我们通过Arnold File Reader节点来读取ass中的geometry信息,以达到在Houdini重构资产的需求,当然这里主要就是用于重构毛发了
feature:
2. 层级支持
3. 支持几何体,包括curve, point, polymesh
节点能读geometry上的属性,比如width等,另外我们也通过该节点将层级记录在了”path”属性上,以方便输出abc文件的时候保持层级一致,这样导入其他DCC软件就可以更换的适配材质环节。下面是一些转换数据在Maya,Houdini,Katana中的显示:





|
|
|
|
|
|
End
原创文章,作者:CG世界,如若转载,请注明出处:https://www.cgworld.wiki/36080.html
评论列表(3条)
2 感觉好复杂啊
爱了爱了,感谢cg世界的小编
长见识了,还能这样做!!!!