🎉

Microfacet Material 微表面材质

notion image
这个卫星图有个高光,发生在澳大利亚,就像渲染一个球面一样。但是山、建筑物等完全看不到,只看到一个平面,高光还有粗糙程度。说明从远处看,看不到细节。
高光处是澳大利亚中部,一大片沙漠。这个沙漠从远处看就像一个平面,本身以一定粗糙程度来反射光。
微表面模型就基于这种假设,只要我离得足够远,很多微小的东西看不到,看到的是最终形成的一个对表面的一个作用,对光最终形成的总体的一个效应。

Microfacet Theory

Rough surface 粗糙的表面
  • Macroscale: flat & rough 但会假设一个平的粗糙的表面,近处看能看到微表面
  • Microscale: bumpy & specular 近处能看到凹凸不平的表面,并且每一个表面的微元都是完全的镜面反射。每一个微表面都可以认为是很小的三角形镜子,分布不均匀,最终会把光打到各个地方去。
💡
重要的概念:远处看看到的是材质、外观,近处看的是几何。 从近处看可以看到不同的几何,镜头拉远之后,不同的几何会消失变成材质。
Individual elements of surface act like mirrors 每一个微表面都像一个微小的镜面
  • Known as Microfacets
  • Each microfacet has its own normal
notion image

Microfacet BRDF

notion image
我们可以研究微表面法线所形成的分布。
对于 glossy 材质,法线分布差的不远,基本都是朝上的。把分布画出来(上图左上),法线会集中在宏观的表面法线的周围,离得很近。
如果表面粗糙,所有微表面可能会沿着不同方向,意味着方向上散的非常开。如果画出来,分布(上图左下)就会离中心非常远。这种会形成 diffuse 的材质。
也就是说,通过微表面模型,我们可以把微表面的粗糙程度,用微表面的法线分布来表示。分布集中就是 glossy,分散开就是 diffuse。
notion image
微表面本身是一个 BRDF,考虑入射方向出射方向。BRDF 考虑了菲涅尔项,菲涅尔项考虑了不同程度的反射。如果观察方向和法线方向几乎是平的,就有大量能量被反射。垂直就少量能量。
 
能量做对之后,考虑法线分布 D(h)。D(h) 这个分布表示了他在任何一个给定方向上分布的值是多少。可能是集中在中间,也有可能是分散开的。
这里又用到了 half vector,因为给定入射和出射方向,我们要知道有多少微表面能够把入射方向的光反射到出射方向去,只有当微表面的法线方向和 half vector 完全一致的时候,入射方向的光才能反射到出射方向,因为微表面是镜子。
在我们这个分布中,有多少微表面的法线方向是沿着这个方向去的呢?那就是对法线分布 D(h) 往这个方向的值进行一个查询。
notion image
shadowing-masking term 又叫几何项,表示的是微表面在物体表面可能会发生互相遮挡,这样会发生自己给自己的阴影,也有可能在另外一个方向看不到一些微表面。有一些微表面失去它们的作用,其实没反射那么多能量。那什么时候容易发生自遮挡自投影的现象?光线几乎是平的打到表面,这种入射方向叫做掠射角(Grazing angle)。
如果没有几何项,那我们渲染一个球,球的边界会特别亮。如果用了几何项,边界就不会那么亮,会被修正。
下面分母的就是要涉及到的各种变换,不多说。

Microfacet BRDF: Examples

微表面模型可以描述的东西特别多,不只是金属。效果也非常好,因为微表面模型本身是基于物理的。
💡
描述木头还要更复杂一点,基于微表面模型之上还要再研究出来一些新的东西,如何和光线进行作用。
notion image
各种电影中,包括游戏里面,PBR(Physically based rendering)、shading,一定会使用微表面模型。
⚠️
微表面模型也有自己的问题,例如 Diffuse 项很少,有时候人们需要在上面额外加漫反射的东西,但这样就不是基于物理了,有很多不同的做法。
微表面模型也有很多不同的模型,但都遵守微表面这一套。