Lecture 17 Materials and Appearances
一、Material == BRDF
1、Diffuse / Lambertian Material
Light is equally reflected in each output direction
![image-20210126174218256](https://i-blog.csdnimg.cn/blog_migrate/c275f182355f58e7e470b73039b76359.png)
这个材质是漫反射
Suppose the incident lighting is uniform:
![image-20210126174235915](https://i-blog.csdnimg.cn/blog_migrate/5e401f0c1aa722f8a865f1565dbc02ae.png)
我们假设物体是白色的,不吸收能量,且进来的光都是相同且均匀的,那么根据能量守恒,反射的光也是相同且均匀的。进来多少Radiance就要反射多少Radiance,就可以把这个渲染方程写出来(如上图所示)。那么这里入射的Radiance是常数,BRDF(Diffuse)也是常数,这两项就可以拿出去,整个式子就变成了对半球上一个cosθ的积分,积分出来是π。那么整个式子就变成了Lo=πfrLi,又因为入射的Radiance等于出射的Radiance,所以Li=Lo。那么fr=1/π。这时候就是完全不吸收能量的BRDF。我们定义一个反射率albedo(ρ)的概念,这个值可以是单通道的一个数,也可以是RGB等,让反射率albedo在0到1之间,这样就可以引入不同颜色的BRDF。
2、Perfect Specular Reflection
![image-20210126175314154](https://i-blog.csdnimg.cn/blog_migrate/be0fa888f534f4eba52bdc0bce514b6e.png)
反射中求出射角ωo:
方法①:通过平行四边形法则即可得到出射光的方向ωo
![image-20210126175429408](https://i-blog.csdnimg.cn/blog_migrate/e574031be6d610f45b37831bdec1388c.png)
方法②:定义方位角(类似于立体角)。
把这些角度投影到一个局部坐标系上。平着向前看(如上左图),任何一个方向和法线的夹角为θ。例如如果θo=0,则意味着是沿法线方向,θo=90°则意味着沿着水平方向平着向右去。另外一个角度定义φ,沿法线反方向俯视这个空间(如上右图),可以看到φi和φo是反向,也就是说两个角相差一个π,通过θ和φ就可以定义ω。
3、Specular Refraction
Snell’s Law
Transmitted angle depends on
index of refraction (IOR) for incident ray
index of refraction (IOR) for exiting ray
![image-20210126180520591](https://i-blog.csdnimg.cn/blog_migrate/30cb3388a9b0843e5627f78bfd05c92a.png)
折射同样也用方位角去分解入射光与出射光的角度。
水平向前看光路满足折射定律,由此可以得出θi和θt的关系。
从上往下看φi和φt依然是反向,相差一个π的关系。
这样我们就可以把折射角的余弦算出来:
![image-20210126181048575](https://i-blog.csdnimg.cn/blog_migrate/727d040c02121483192c8240d63b64f0.png)
通过上式我们可以发现,折射会得到cosθt这样一个有意义的实数,如果这个有意义的实数不存在,那么就说明折射不可能发生。那么什么时候这个式子没有意义?答案是根号下的式子为负,即:
![image-20210126181252063](https://i-blog.csdnimg.cn/blog_migrate/247d1dbfa651ce3d022cc16dc414acca.png)
When light is moving from a more optically dense medium to a less optically dense medium:
![image-20210126181325624](https://i-blog.csdnimg.cn/blog_migrate/8c2cc8e7863ac246ea26fecb9dd04b49.png)
Light incident on boundary from large enough angle will not exit medium.
当入射介质的折射率大于折射介质的折射率,那么折射就不会发生,这就是全反射现象。
4、Fresnel Reflection / Term
![image-20210126181508549](https://i-blog.csdnimg.cn/blog_migrate/ac343906bce140f9868d687ce437c133.png)
Reflectance depends on incident angle (and polarization of light)
如上图例子所示,如果垂直于桌子向下看,桌子上几乎没有书本的反射,但是一旦视角慢慢平行于桌子,就会发现反射越来越明显。
这种现象就叫菲涅尔项。入射光进来时与法线的角度决定了有多少能量会被反射。
Fresnel Term (Dielectric, =1.5) Fresnel Term (Conductor)
(蓝线和绿线表现的是光的一种极化性质,和光的波动性有关(不用管,渲染器也不会去考虑这个问题)。红线是最后平均蓝绿两条线后的线,这里只看红线就可以)
对于绝缘体来说(如上左图所示),当入射光和法线夹角很小时,反射也很小,当入射光和法线夹角逐渐变大时,反射会越来越强。
而对于导体来说(如上右图所示),无论入射光和法线夹角是多大,反射都很强。
Fresnel Term — Formulae
Accurate: need to consider polarization
![image-20210126182441337](https://i-blog.csdnimg.cn/blog_migrate/360785af45fc6efe37ba08dfb1ac2556.png)
菲涅公式非常复杂,因此我们通过拟合出一条曲线,用一个式子将这种现象描述出来:
Approximate: Schlick’s approximation
![image-20210126182553017](https://i-blog.csdnimg.cn/blog_migrate/c4d9accd5e0b65c2509977c761a4c9a7.png)
R0表示基准反射率,也就是光线与法线夹角为0°时的反射率,然后考虑夹角增大到90°的这样一条曲线。当夹角为0°时,反射率为R0,当夹角为90°时,反射率为1。这样无论是对导体还是绝缘体,这个公式都可以很好地近似描述菲涅尔项。
二、Microfacet Material
1、Microfacet Theory
![image-20210126200410628](https://i-blog.csdnimg.cn/blog_migrate/505c66634bc43e50acf004b8ebfcd4e7.png)
Rough surface
- Macroscale: flat & rough
- Microscale: bumpy & specular
Individual elements of surface act like mirrors
- Known as Microfacets
- Each microfacet has its own normal
微表面:从远处看看到的是材质外观,从近处看看到的是几何
(从近处看上去表面是凹凸不平,一个个小表面,从远处看是平的,但是材质的感觉是粗糙的)
每一个微表面都有各自的朝向
2、Microfacet BRDF
Key: the distribution of microfacets’ normals
- Concentrated <==> glossy
![image-20210126201039743](https://i-blog.csdnimg.cn/blog_migrate/fc5b53b8a600967d16dbff108488ea15.png)
当表面比较光滑时,微表面的法线方向比较集中,指向的方向都集中在一小块儿区域内
- Spread <==> diffuse
![image-20210126201122570](https://i-blog.csdnimg.cn/blog_migrate/a75bbcb119aac37a6c64e00385d89465.png)
当表面比较粗糙时,微表面的法线方向比较散乱,指向的方向范围比较大。这就会形成漫反射材质
What kind of microfacets reflect ωi to ωo?
![image-20210126201652422](https://i-blog.csdnimg.cn/blog_migrate/fd532d62e261ccc82f817a62e4308da9.png)
![image-20210126201725436](https://i-blog.csdnimg.cn/blog_migrate/54da21d43bd5b0fca793f1758d141f88.png)
BRDF首先考虑菲涅尔项F(i,h),然后考虑法线分布D(h),这里又用到了半程向量,只有当微表面的法线方向在半程向量周围一个限定的范围之内时,才能将光反射出去。最后中间那一项G(i,o,h)是考虑微表面之间的光线遮挡,比如有一束光几乎平行于微表面打过来,那么前面的微表面就有可能遮挡住光线。
3、Isotropic / Anisotropic Materials (BRDFs)
Key: directionality of underlying surface
![image-20210126202311913](https://i-blog.csdnimg.cn/blog_migrate/deb00a5b33347babda71806d6a0ff1ee.png)
如上图:
各向同性Isotropic,微表面并不存在一定的方向性或方向性很弱
各向异性Anisotropic,微表面有明确的方向性
Anisotropic BRDFs
Reflection depends on azimuthal angle φ
![image-20210126202558130](https://i-blog.csdnimg.cn/blog_migrate/95e693a7bf31912fefc642d02df1c367.png)
Results from oriented microstructure of surface, e.g., brushed metal
![image-20210126202703530](https://i-blog.csdnimg.cn/blog_migrate/ccd600e87ad5b4e1cf744ab4c71f4b58.png)
各向异性反应在BRDF上就是:
BRDF原来是两个方向的函数θi、φi是输入方向,θr、φr是输出方向。如果BRDF满足在方位角上旋转,得到的还是相同的BRDF(沿一个方位角θ或φ的中心旋转,相对位置不变),就称为各向同性;如果相对位置改变,BRDF改变,则称为各向异性。
4、Properties of BRDFs
- Non-negativity
![image-20210126203430959](https://i-blog.csdnimg.cn/blog_migrate/31f03115984187f09a24f3d44598ae8c.png)
BRDF的值永远是非负的,表示了能量的分布。
- Linearity
![image-20210126203453437](https://i-blog.csdnimg.cn/blog_migrate/7282c2aa5117883513d5a804adfd1718.png)
![image-20210126203530452](https://i-blog.csdnimg.cn/blog_migrate/160c0544c91e3f6d65e19bf59d13047e.png)
BRDF的线性性质。BRDF可以分成好多块分别做光线传播,把各部分分别计算的结果加起来,即为BRDF(如当时做Blinn-Phong模型公式时拆成了漫反射高光环境光三部分分别去计算,最后加了起来得到结果)。
- Reciprocity principle
![image-20210126203818435](https://i-blog.csdnimg.cn/blog_migrate/e34451a3aacdb486193f7d7b1c445421.png)
交换入射方向和出射方向,得到的BRDF的值是一样的。
- Energy conservation
![image-20210126203928967](https://i-blog.csdnimg.cn/blog_migrate/ebd938fe2001ee151d6f235df5987dd1.png)
能量守恒,BRDF不可能让能量增多。就算是完全反射,也就是进来多少再出去多少。如果有部分被吸收,那么反射出来的能量就会比原来进来的小。
-
Isotropic vs. anisotropic
If isotropic:
Then, from reciprocity:
BRDF的值只与相对的方位角有关,即φr-φi,因此原来四维的BRDF,如果是各向同性材质,就可以写成三维的。
所有的BRDF,由于具有可逆性(交换入射方向和出射方向,得到的BRDF的值是一样的),因此相对方位角不用考虑正负,因此后面又可以写成方位角之差的绝对值,不用考虑谁大谁小谁减谁。
三、Measuring BRDFs
Measuring BRDFs: Motivation
Avoid need to develop / derive models
- Automatically includes all of the scattering effects present
Can accurately render with real-world materials
- Useful for product design, special effects, …
Theory vs. practice:
![image-20210126204608439](https://i-blog.csdnimg.cn/blog_migrate/2cc6085066039729e55f95720e1d8081.png)
为什么要测BRDF?因为以前的BRDF模型并不足够准。如上图,对于菲涅尔项来说,如果通过物理方法来测出,其与理论的各种方法算出来的结果好像完全不一样。而且如果能直接测量BRDF,就不需要再去推某些BRDF了。
Image-Based BRDF Measurement
![image-20210126204859388](https://i-blog.csdnimg.cn/blog_migrate/8bfec4dd97abc36421ab2a6a9865ad43.png)
如何测量呢?把要测量的物体放在中间,找一个灯从四面八方照这个物体,拿一个相机从四面八方去拍,这样就覆盖了所有BRDF可能存在的方向了。
Measuring BRDFs
General approach:
foreach outgoing direction wo
move light to illuminate surface with a thin beam from wo
for each incoming direction wi
move sensor to be at direction wi from surface
measure incident radiance
枚举所有的出射方向,然后把光源放上去,
枚举所有的入射方向,然后把相机放上去,(入射方向和出射方向可以互换)
然后测量得到的Radiance是多少
Improving efficiency:
- Isotropic surfaces reduce dimensionality from 4D to 3D
- Reciprocity reduces # of measurements by half
- Clever optical systems…
但是这样操作数据量会立马增上去。
所以可以设计更好的思路,通过测量一部分点,剩下的可以猜出来。
Tabular Representation
![image-20210126205416184](https://i-blog.csdnimg.cn/blog_migrate/997b68c87ae4f03593f60482ebeab85e.png)
当把BRDF数据都测出来以后,就通过库来存储这些数据。