物体反射光场BRDF模型

发布时间 2023-06-12 14:43:46作者: 小淼博客

一、基本概述

     双向反射分布函数(Bidirectional Reflectance Distribution Function,BRDF)是用来定义给定入射方向上的辐射照度如何影响给定出射方向上的辐射率。更笼统地说,它描述了入射光线经过某个表面反射后如何在各个出射方向上分布这可以是从理想镜面反射到漫反射、各向同性或者各向异性的各种反射。

二、原理分析

I. 文章分析

1. 《A Data-Driven Reflectance Model》@Reference[1]

    

     本文主要介绍了一种基于数据驱动形的BRDF模型,文章介绍了一种基于 矫正相机+旋转平台+稳定可见光光源+不同材质圆球对象 的实验装置,描述了标准的反射光束模型,完成入射反射光束的采集之后,确定了BRDF数据集的表征方法,通过对数据的线性、非线性、PCA主成分 分析方法,确定了BRDF数据需求表征的向量维度和具体参数;接着通过非线性方法对上述表征过程进行将维,得到了在10D条件的误差为可接受范围;并基于此建立了渲染重建模型。

2. 《BRDF LABORATORY MEASUREMENTS USING A CAMERA-AIDED SPECTRORADIOMETER》

    

     本文主要介绍了一种附加可见光RGB相机的BRDF数据采集装置,采用了20nm~2000nm全波段的光谱测量仪器获取光通量数据,使用钨丝卤素光源进行照明,通过增加的 RGB Camera 建立了 SFM 模型,通过此模型从而解算出具体的观测采集点的位姿,从而大大降低了BRDF采集设备的硬件成本,文章对 SFM 模型重建后的位姿进行了实际测试对比,能够有效控制角度精度在1°以内,长度精度在6cm以内;文中对三种样品进行了测试对比,获得了较为良好的 BRDF 实验数据。

3. 《Automated three-axis gonioreflectometer for computer graphics applications》

    

     本文主要介绍了一种BRDF数据采集装置,通过光束控制镜头及极化控制,输出了确定大小的入射光源,通过自动电控的旋转手臂调节入射光角度,样品安装在一个二维调节的的实验平台上,从而采集不同角度的图像,光源采集部分使用了光谱采集设备;软件代码实现了采集的全自动控制,包括参考光源的自矫正等,最后通过采集了两种材料评估了设备的基本性能能够满足BRDF采集需求,验证方向主要包括了能量守恒原理,互换定律。

II. 理论分析@Reference[2]

BRDF理论光学入射出射光场模型如下:

BRDF的精确定义是出射辐射率的微分(differential outgoing radiance)和入射辐照度的微分(differential incoming irradiance)之比:

\[f(l,v)=\frac{dL_{0}(v)}{dE(l)} \]

参数解析如下:

  • 其中 \(l\) 为入射光方向, \(v\) 为出射光方向,也是观察方向。
  • \(dL_{0}(v)\) 表示物体表面反射到 \(v\) 方向上的微分辐射出度,单位为 \(W·m^{−2}·sr^{−1}\),而 \(L_{0}(v)\) 计算了物体整个表面在观测点位置处的贡献总和。
  • \(dE(l)\) 表示物体表面入射 \(l\) 方向上的光束微分辐射照度,单位为 \(W·m^{−2}\),而 \(E(l)\) 计算了物体整个表面入射光束的广场分布。

关于为什么是 辐射率(Radiance)/辐照度(Irradiance)之比,参考这里:

因为照射到入射点的不同方向的光,都可能从指定的反射方向出射,所以当考虑入射时,需要对面积进行积分。而辐照度irradiance正好表示单位时间内到达单位面积的辐射通量。所以BRDF函数,选取入射时的辐照度Irradiance,和出射时的辐射率Radiance,可以简单明了地描述出入射光线经过某个表面反射后如何在各个出射方向上分布。而直观来说,BRDF的值给定了入射方向和出射方向能量的相对量。引用

根据上述描述,可以确定离散有限元的BRDF着色方程如下:

\[L_o(V)=\sum_{k=1}^nf(l_{k},v)\bigotimes E_{l_{k}} \]

?Tips: 各向同性BRDFs(Isotropic BRDFs)是一个重要的特殊情况。这样的BRDF在输入和输入方向围绕表面法线变化(保持相同的相对夹角)时保持不变。所以,各向同性BRDF是关于三个标量的函数。

1. 漫反射BRDF

A. Lambert 漫反射

光线在击中床场景中的某点后会朝着四面八方均匀的散射出去,因此漫反射的BRDF一定是一个常数,假设入射光线是均匀且遍布整个半球方向,可以得到以下方程:

\[L_o(\omega_o)=\int_{H^2}f_rL_i(\omega_i)cos\theta_id\omega_i \]

由于入射光在各个角度方向上相同且等于 \(L_o\),则有 \(L_i(\omega_i)=L_i=L_o\),上式化简为:

\[L_o(\omega_o)=f_rL_i\int_{H^2}cos\theta_id\omega_i=f_rL_i\int_{H^2}cos\theta_isin\theta_id\theta d\phi=\pi f_rL_i \\ L_o(\omega_o)=L_o=L_i \]

最终可得:

\[f_r = \frac{1}{\pi} \]

考虑到材料除了漫反射以外,还会产生一定的吸收特性,基于此,最终漫反射的结果为 朗勃体漫反射模型 lambert

\[f_{lambert} = \frac{\rho}{\pi} \]

B. Phong 反射模型

C. Oren-Nayar漫反射模型

D. Disney (Burley) 漫反射模型

https://zhuanlan.zhihu.com/p/365510738

2. 镜面反射BRDF(微表面模型 micro facet surface)

     镜面反射模型主要基于微表面模型,该模型将复杂的镜面反射表面建立成法线方向概率随机分布的微镜面反射表面模型;通过建立法向量随机分布函数,菲涅尔方程,物体几何函数从而建立了理论的 BRDF 方程,这里的微表面的限制条件为:其变换尺度在几百纳米级别以上(针对可见光范围),否则会产生像光栅材料那样相互衍射、色散的结果,针对有一定透射率的物体的 BRDF建立,还需要考虑其不同角度下光束通过物体过程中散射从表面出射的情形,具体讨论参看 Video

A. Cook-Torrance模型

\[f_{Cook-Torrance}=\frac{F(l,v)G(l,v)D(h)}{4(n\cdot l)(n\cdot v)} \]

其中 \(l\) 为光束入射方向,\(v\) 为观察方向,\(n\) 为宏观平面法向量,\(h\) 为微平面法向量,上述公式其他分布函数 FGD function 解析如下:

  1. 菲涅尔方程(Fresnel Equation)
         描述了物体表面在不同入射光角度下反射光线所占的比率,观察角度与法线夹角越大反射程度一般越大,但是精确计算计算消耗较大,一般用Fresnel-Schlick近似法求得近似解:

    \[F_{Schlick}(h,v,F_0)=F_0+(1-F_0)(1-(h \cdot v)^5) \]

         \(F_0\) 表示平面的基础反射率,它是利用所谓折射系数(Indices of Refraction)计算得出的。越是朝球面掠角的方向上看(此时视线和表面法线的夹角接近90度)菲涅尔现象就越明显, 反光就越强。但是根据折射系数只能算出电介质(非导体)的F0为了兼容导体,一般会将 \(F_0\) 提前计算出来:\(F_0=\frac{(n-1)^2}{(n+1)^2}\),其中 \(n\) 为物体的折射率

  2. 几何函数(Geometry Function)
         描述了微平面自遮挡的属性,当一个平面相对比较粗糙的时候,平面表面上的微平面有可能挡住其他的微平面从而减少表面所反射的光线。
         实际上并不是所有微表面都能收到接受到光线,如下面左边的图有一部分入射光线被遮挡住,这种现象称为Shadowing。也不是所有反射光线都能到达眼睛,下面中间的图,一部分反射光线被遮挡住了,这种现象称为Masking。光线在微表面之间还会互相反射,如下面右边的图,这可能也是一部分漫射光的来源,在建模高光时忽略掉这部分光线。

         Shadowing和Masking用几何衰减因子(Geometrical Attenuation Factor)来建模,输入入射和出射光线方向,输出值表示光线未被遮蔽而能从反射到方向的比例。光学平面并不会将所有光线都反射掉,而是一部分被反射,一部分被折射,反射比例符合菲涅尔方程(Fresnel Equations),在UE4中采用了Schlick-GGX来进行建模:

    \[k=\frac{(Roughness+1)^2}{8}\\ G_1(\vec V)=\frac{\vec n \cdot \vec v}{(\vec n \cdot \vec v)(1-k)+k}\\G(\vec l,\vec v,\vec h)=G_1(\vec l)G_1(\vec v) \]

    一般情况下,粗糙程度越大,遮挡程度越大。

  3. 法线分布函数(Normal Distribution Function)
         其代表了所有微观角度下微小镜面法线的分布情况,粗糙表面法线分布相对均匀,光滑表面法线分布相对集中 (这种解释可能会有些抽象,后面会给出更加直观的物理上的解释)

         用法线分布函数(Normal Distribution Function,简写为NDF)来描述组成表面一点的所有微表面的法线分布概率,现在可以这样理解:向NDF输入一个朝向,NDF会返回朝向是的微表面数占微表面总数的比例(虽然实际并不是这样,这点我们在讲推导过程的时候再讲),比如有1%的微表面朝向是,那么就有1%的微表面可能将光线反射到方向。
    其中一种 NDF 分布函数 Beckmann distribution function :

    \[D(h)=\frac{e^{-\frac{tan^2\theta_h}{\alpha ^2}}}{\pi \alpha ^2 cos^4\theta_h} \]

可以看出无论是几何函数G,还是菲涅尔方程F,都是由于观察方向,入射方向的不同所导致的只有部分光线能够被反射:

\[0\le G(l,v)\le 1\\ 0\le F(l,h)\le 1 \]

III. BRDF的性质

1. 可逆性

BRDF的可逆性源自于亥姆霍兹光路可逆性 Helmholtz Recoprpcity Rule ;BRDF的可逆性即,交换入射光与反射光,并不会改变BRDF的值:

\[f(l,v)=f(v,l) \]

2. 能量守恒性质

BRDF需要遵循能量守恒定律。能量守恒定律指出:入射光的能量与出射光能量总能量应该相等。能量守恒方程如下:

\[Q_{incoming}=Q_{reflected}+Q_{absorb}+Q_{transmitted} \]

根据上式可知:

\[Q_{reflected}<Q_{incoming} \]

因此,通过实验或者理论推导得到的BRDF函数应该满足如下条件:

\[\forall l,\int_\Omega f_r(l,v)cosvdv\le1 \]

3. 线性特征

很多时候,材质往往需要多重BRDF计算以实现其反射特性。表面上某一点的全部反射辐射度可以简单地表示为各BRDF反射辐射度之和。例如,镜面漫反射即可通过多重BRDF计算加以实现。

三、测试实验

Reference

  1. Wojciech Matusik, Hanspeter Pfister, Matt Brand and Leonard McMillan. “A Data-Driven Reflectance Model”. ACM Transactions on Graphics 22, 3(2003), 759-769.
  2. SIGGRAPH 2013 Course: Physically Based Shading in Theory and PracticeCourseVideoDownload ✌️
  3. Addy Ngan研究成果
  4. Experimental Analysis of BRDF ModelsCourseResource
  5. MERL BRDF Database
  6. Lights and Shadows ?
  7. GAMES101-现代计算机图形学入门-闫令琪
  8. 参考代码