Chapter 9 – Physically Based Shading 基于物理的着色

9.10 用于布料的BRDF模型

布料的微观几何面与其他类型的材质不同,有些布料可能有着高度重复的编织微观结构。因此布料表面有着特殊的外观表现,其需要相应的着色模型,例如anisotropic镜面反射,粗糙的散射,甚至随着视角而变化的颜色。除了BRDF,大多数布料有着频率极高的空间变化,这一特点也是创建真实布料的关键。

布料BRDF模型主要分为三个类别:基于实践经验的模型,基于微面理论的模型,以及微观圆柱体模型。我们将在本节中,学习这三个大类。

9.10.1 基于实践经验的布料模型

在游戏神秘海域2中,布料表面使用了下列漫反射BRDF项:

其中krim,kinner与kdiff都是用户可以控制的缩放因子,分别对应边缘光照项,提亮正向表面(inner)以及Lambertian项。此外,αrim和αinner控制了衰减。但是这一等式并不是基于物理的,因为光线的方向并不会对等式造成影响。

但是,在神秘海域4中的布料使用了微面模型与微观圆柱体模型中的一种,也就是说布料的类型将会影响其镜面反射项。对于漫反射项,其使用“wrap lighting”的表面下方散射模型进行模拟:

上述等式中,参数cscatter是用户可控制的变量,表示散射颜色;w则是一个范围[0,1]的值,其控制了wrap lighting的宽度。

Disney使用他们自己的BRDF项并结合sheen term,以此模拟布料与粗糙的散射:

其中,ksheen是一个用户控制的参数,用来改变sheen term的强度。而sheen的颜色csheen则是通过白色与标准化亮度的ρss进行blend后得到(需要通过另一个用户设置的参数进行控制)。换句话说,ρss的亮度将独立于其色度与饱和度。

9.10.2 微面布料模型

PS4平台上的游戏The Order:1996所使用的布料BRDF结合了修正后的微面BRDF,velvet(天鹅绒)NDF以及我们在9.9.3小节中学习的微面BRDF模型。其中的velvet NDF如下:

等式中,α控制了反向Gaussian的宽度,kamp控制了其振幅。而完整的布料BRDF如下:

Imageworks使用了不同的反向NDF运用于sheen term,其能够与任何BRDF相结合:

到现在为止,我们所看到的这些布料模型都受限于某一特定类型的布料。我们在之后的小节中学习的一些布料模型能够以更范例化的方法模拟布料。

9.10.3 微观圆柱体布料模型

布料所使用的微观圆柱体模型类似于毛发所使用的模型,而我们将在第十四章中学习更多关于毛发的知识。这一模型的关键在于将表面假设为被一维线条所覆盖。对此,Kajiya与Kay提出了一种简单的BRDF,其理论基础则是基于Banks。因此该BRDF模型也被称为Kajiya-Kay BRDF或者Banks BRDF。如果表面由一维的线条组成,那么在表面上的任何一点都有着无限数量的法线。虽然近些年有着许多新的微观圆柱体模型基于上述两个BRDF模型被提出,但是由于Kajiya-Kay BRDF的简便性,其仍被一些游戏所使用。例如,在神秘海域4中,Kajiya-Kay BRDF被用来模拟某些反射度较高的布料的镜面反射项。

Dreamworks使用一个相对简单且由美术控制的微观圆柱体布料模型。其使用贴图来改变粗糙度,颜色和丝线的方向。同时,其也被标准化为能量守恒的模型。

有时,我们会使用毛发的BSDF模型(我们将在第十四章中学习)来模拟布料。

留下评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据