GPU加速的几何细分——动态增加细节而不占用内存。实时VFX的标准方法。
Tessellation(或称Tesselation)是GPU最重要的技巧之一,可以在不超出内存和计算负载的情况下实时渲染复杂的几何体。与其在拍摄现场或素材管线中建模数百万个多边形,不如从一个较稀疏的基础网格开始,让GPU动态细分它。硬件Tessellator位于顶点着色器和片段着色器之间,可以在几毫秒内分解曲面——具体取决于与摄像机的距离、曲面曲率、以及位移贴图。
在实践中,我们主要在三种场景下使用Tessellation:首先,用于角色和环境的高模细节——布料的褶皱、混凝土的凹凸、皮肤的毛孔——而无需用1000万个顶点来充斥基础网格。其次,用于自适应几何体LOD(细节级别),在靠近摄像机时自动变得更详细,在远离时又变稀疏。这可以节省大量的带宽。第三,用于实时VFX中的水、织物和皮肤模拟,其中对粗糙的布料网格进行Tessellation,然后通过位移贴图或法线贴图添加更精细的运动。与预计算的高模素材相比的优势是:动态、节省内存,并且细节量会根据当前的帧预算进行调整。
工作流程中的重要提示:Tessellation需要可靠的UV布局和正确的法线烘焙。如果基础网格的法线有折痕,Tessellation的结果会非常糟糕——就像皱巴巴的纸而不是光滑的表面。位移贴图必须是干净的16位或更高精度,否则会产生伪影。而且:Tessellation会消耗GPU资源——并非可以无限扩展。一个具有过度激进Tessellation因子的4K镜头也可能拖慢RTX渲染。需要适度:为特写镜头提供足够的细节,但不要超过必需的量。
在Unreal Engine或Unity等实时引擎中,Tessellation是现代视口渲染器的标准配置。对于电影VFX(Arnold、RenderMan、V-Ray),它使用较少——通常更倾向于预先计算出密集的网格。但在交互式VFX、游戏电影和使用实时3D(如Unreal Engine配合Neon)的实景合成中,Tessellation是性能和视觉丰富度的基石。