虚拟数字人网

虚幻引擎中的毛发实时渲染----优化

cnshuziren.com 技术前瞻 2022-08-25 18:16:38

虚幻引擎主要执行优化、渲染、模拟以及毛发LOD的生成,以及有限的造型控制。在理想情况下,你需要先确定好Groom的造型,再将其导入到虚幻引擎中。在初次导入之后更改造型的情况并不罕见,此时只需要在数字内容创作应用中更改造型,随后重新导入Groom即可。

虚幻引擎使用Alembic文件格式作为毛发导入语言,并会通过命名规则来辅助导入XGen、Ornatrix、Yeti和Houdini Hair Utils等数字内容创作工具的静态Groom。

在DCC应用中创建Groom文件并导出为Alembic格式时需要注意,你要确保将特定属性导出到Alembic文件中,详情请参见本白皮书的“导入流程”章节。Ornatrix和Yeti可以将这些属性导出到Alembic文件中,以便后续导入虚幻引擎。

优化

就基于发丝的毛发系统而言,高密度的Groom可以包含数十万甚至百万根发丝,每根发丝也会包含数十个控制顶点。这两点共同构成了导入、渲染和模拟的性能影响因素。

在影片特效等离线渲染流程中,通常会参照真实世界中的(毛发)密度和宽度来尽可能营造真实感。但在实时渲染中,虽然你也可以一开始参照就现实中的密度和宽度,以求尽可能还原参考资料中的效果,但通常最后都需要对性能进行评估并进行优化。

用于实时渲染的毛发,可以在导入虚幻引擎之前,就在DCC应用中完成优化。优化时可以先从控制顶点的数量入手。如果毛发短而直,就可以大幅减少控制顶点,并且不会产生太多的视觉差异。如果毛发长而蓬乱,而且比较复杂,就要避免减少过多的控制顶点,以免有损整体的结构。

下一步就是优化密度和宽度。首先将密度减半,将宽度调整为两倍,并根据需要重新评估。在选取人类毛发的平均宽度时,通常可以先从0.008厘米开始,而发际线处、鬓角处和散落的纤细发丝通常会使用更低的宽度值。

视觉感知的密度和实际的密度之间存在一种平衡。较粗的发丝可以阻隔光线和直接可见的皮肤,从而实现更浓密的Groom外观。通常来说,在降低密度的同时,最好通过提高宽度作为补偿,直到在性能与真实性之间取得平衡。

如果资产距离摄像机非常近,这种方法未必能够奏效,因为宽度将看起来不够真实。LOD可以在摄像机远离时通过发丝剔除和加厚解决这一问题,在改善性能的同时,确保Groom的宽度与密度能尽可能地贴近现实。如需进一步优化,你可以回归传统,选择基于发片的方法,使用少量大型平整的板片提供大量单独毛发的大致形状和运动。虚幻引擎也为这些方法提供了可用的功能。

发表评论

用户头像 游客
此处应有掌声~

评论列表

还没有评论,快来说点什么吧~