渲染
为了虚幻引擎中进 行渲染,导入的毛发会被转换成单独的多段线。这些曲线会被重新划分为小簇的发丝分组,以便在LOD选择和剔除时使用。
当实时系统渲染每个像素中的多根纤细发丝时,有可能会出现锯齿问题。毛发的渲染可以使用多种方法,具体取决于性能和品质预算。对于实时渲染,虚幻引擎默认的主要可视性算法结合使用了MSAA(多重采样抗锯齿)可视性缓冲来提取最初可见的发丝,同时也使用了亚像素覆盖缓冲。这一结合实现了性能与品质的平衡。
在制作动画时,我们更愿意牺牲性能来换取质量,因此可以使用不同的方式,动态地构建出一列可见发丝。这可以得到更好的排序和半透效果。对于这两种算法,我们都会在压缩后输出每个像素的可见发丝列表,以减少每个像素中的采样数量。
Groom会被分成小簇以运算LOD和剔除信息。在渲染Groom时,这些小簇可以根据屏幕覆盖率和可见性/遮蔽性进行细粒度的LOD选择。这样我们就能根据屏幕上实际可见的内容,相应地更改渲染与性能开销。这种方法对于大型动物的皮毛渲染尤其适用,因为Groom可能只有一部分离摄像机很近,而其他部分距离很远。
出于可扩展性,Groom系统支持不同的几何表现形式,例如发片和网格体。当Groom只覆盖到几个像素,或者为了在性能较低的平台上运行时,可以切换为更简单的渲染方式。