离线渲染——真实感材质建模

南京大学 王贝贝 2024.8.7

王老师主要讲解了渲染中的基本概念以及常见的材质模型。

课程目标:

  • 一个shader
  • 一个感兴趣的材质方向

材质模型的基本概念

辐射度量学 Radiometry

中学物理知识告诉我们使用Q焦耳描述能量。由于光也携带能量,在辐射度量学固然也是如此。

辐射通量 Radiant flux

flux用于描述单位时间通过的能量。
单位:瓦特 W,Watt(流明,lm,lumen)
$ \phi = \frac {dQ} {dt} $

辐射强度 Radiant Intensity

intensity用于描述每单位角的通量。
$ I(\omega) = \frac {d\phi}{d\omega} $

辐照度 irradiance

irradiance用于描述通过单位面积的流明。
单位:lux ($ \frac{W}{m^2} $)
$ E(x) = \frac {d\phi(x)}{dA} $

辐射率/辐射亮度 radiance

radiance用于描述每单位角每投影面积的能量。
单位:尼特 nit ($ \frac{W}{sr m^2} $)
$ L(p,\omega) = \frac {d^2\phi(p,\omega)}{d\omega dA cos\theta} $
outgoing radiance
incoming radiance != irradiance 物理意义不同,单位不同

拓展

显而易见地,irradiance和radiance可以进一步互相转换。

  • 通常用Incident Radiance描述入射光的能量,指来自单位角的光线到达某一面的能量。
    $ L(p,\omega) = \frac {dE(p)}{d\omega cos\theta} $
  • 用Exiting Radiance描述出射光的能量,指单位面积发出的能量。
    $ L(p,\omega) = \frac {dI(p)}{d\A cos\theta} $

数学基础

着色法向 & 几何法向

  • 几何法向:三角面的法向量
  • 顶点法向:所有相关联的三角形的面法向的均值
  • 着色法向:三角形内某点的法向,用三个顶点法向差值
    使用三种不同的渲染频率分别对应了不同的渲染类型:
  • Falt Shading
  • Gouraud Shading
  • Phong Shading
    渲染结果如下:

方向的参数化

不同坐标系下的表达

直角坐标系
极坐标系
球面坐标系

BRDF的不同参数化

几何光学与波动光学

表面渲染与体渲染

表面渲染:入射出射点相同
次表面渲染: 光在介质传播,进行吸收、散射
渲染方程->辐射传输方程(radiative transfer equation)
扩散理论(diffusion theory)

双向反射函数 BRDF

BRDF的定义

局部坐标系
着色法向wo
反射光与入射光的比例关系
定义为出射光的微分辐射亮度/入射光的微分辐照度
$ f_r(\omega _i \rightarrow \omega _ r) = \frac{dL_r(\omega _r)}{dE_i (\omega _i) } $

我们想知道出射光的辐射亮度,于是经过简化和积分就可以得到了。

BRDF的描述

  • 直接使用数据(4D/3D表格)
  • MERL数据集

双向透射函数 BTDF

双向散射函数 BSDF

BSDF = BRDF + BTDF

常见材质模型

衡量标准

真实性、高效性、简洁性、统一性、物理性(能量守恒:白炉测试,可逆性)、重要性采用便捷性、可编辑性。

经验模型

漫反射模型

Lambertian模型

$ f(w_i,w_o)= \frac {p}{pi} $

镜面反射模型

Phong模型

Blinn-Phong模型

微表面模型

DFG
D法向分布函数
F菲涅尔项
G遮挡函数

Normal Distribution Function

常见的NDF模型:
Beckmann(Beckmann and Spizzichino 1963);GGX(Walter 2007);GTR(Burley 2012(迪士尼))
参数:
粗糙度Roughness (a = Roughness^2)
应用:
GGX常用
GTR拟合更好,但打破了拉伸不变形。

Shadow Masking

描述有多少比例的微表面可同时被入射和出射方向观察到
相同的NDF可以得到不同的微表面profile
不同的模型:
Smith模型、V-Groove等
Smith假设:

问题:只考虑了单次反射,可能多次反射后光线能量不会损失

菲涅尔项 Fresnel

光线在两种不同折射率的介质中传播时的反射比例。
与界面折射率有关(IOR)。金属为复数
金属(conductor):基本上接近1,在贴地角处反射更强
非金属(dielectric):
计算需要考虑偏振。离线使用
实时渲染进行简化,Fresnel Schlick Approximation
UE5.2 多一项F90,多考虑了一个方向的菲涅尔。

总结

  • 没有金属度;
  • 没有漫反射项

Disney Pricipled Model

应用

讲座没有提及如何应用这些模型。这里进行补全。
假如我们要写一个标准的PBR shader,可以分为下面几步:

  • 参考Blinn-Phong模型的思路,将一个材质看作是ambient+diffuse+specular线性相加的结果。
  • diffuse项可以使用Lambertian模型
  • specular可以使用微表面模型
  • ambient使用球谐函数对环境进行采样

于是就可以写出看起来不错的效果了:

材质模型近期进展

  • 神经网络生成材质