GAMES101 学习17——材质和外观

举报
lutianfei 发表于 2022/05/13 16:26:58 2022/05/13
【摘要】 参考资料:https://blog.csdn.net/qq_36242312/article/details/116197375 一、材质自然界中材质通常用来表示光与物体表面的交互,而在图形学中材质就是BRDF,因为 BRDF 描述了光线打到物体表面是如何被反射的,它所反射的范围是表面半球。 1.1 Diffuse / Lambertian Material(漫反射材质)Diffuse / ...

参考资料:
https://blog.csdn.net/qq_36242312/article/details/116197375

一、材质

自然界中材质通常用来表示光与物体表面的交互,而在图形学中材质就是BRDF,因为 BRDF 描述了光线打到物体表面是如何被反射的,它所反射的范围是表面半球。

1.1 Diffuse / Lambertian Material(漫反射材质)

Diffuse / Lambertian Material 会向着色点表面半球的各个方向进行均匀反射:
image.png

之前经验上定义这种材质是通过 RGB 三个通道的颜色来定义的,即这种材质在不同颜色通道上反射的分量是不同的。

现在考虑对这种材质进行更加真实的定义,考虑能量守恒定理(出射光线的能量永远不能超过入射光线的能量(发光面除外))且这种材质的入射能量 L i ( ω i ) L_{i}\left(\omega_{i}\right) 和 BRDF f r f_{r} 为常数,所以根据前面定义的渲染方程:
image.png

就有 L o ( ω o ) = π f r L i L_{o}\left(\omega_{o}\right)=\pi f_{r} L_{i} ,且 L o = L i L_{o}=L_{i} ,所以漫反射的 BRDF为: f r = 1 / π f_{r} = 1/\pi 。对于不同颜色的 Diffuse / Lambertian Material, 只需要引入 albedo 来表示反射颜色即可:
image.png

  • 假设材质是diffuse的,Radiance是均匀的
  • 一个观察:入射的Radiance是均匀的
    • 根据能量守恒:入射和出射的Irradiance相等,并且他俩的Radiance都均匀
    • 入射的Radiance和出射的相等

1.2 Glossy material (BRDF)

这是一种更加粗糙的材质,表面会产生沿一个方向的散射:
image.png

1.3 deal reflective / refractive material (BSDF)

这种材质会产生反射和折射:
image.png

1.3.1 反射(BRDF)

镜面反射角度的计算可以通过相对于法线的角度 ( ω o ω i \omega_{o},\omega_{i} )的点积进行计算,也可以通过方向在平面上的投影中的角度( ϕ o ϕ i \phi_{o},\phi_{i} )来进行计算:
image.png

1.3.2 折射(BTDF)

折射可以通过 Snell’s Law 进行计算,定义入射光的折射率为 η i \eta_{i} ,折射光的折射率为 η t \eta_{t} ,计算折射角的方式就为:

image.png

image.png

BSDF = BRDF + BTDF

1.3.3 全反射现象

image.png

image.png

1.4 Fresnel Reflection / Term 菲涅尔项(性质)

描述能量被反射的占比情况,当得到反射能量的占比后,通过能量守恒定理就能计算出折射的能量部分。它描述了一种现象,当视线与观察物体表面越趋于平行时,反射的能量越多;反之反射的能量越少:

菲涅尔项:用于解释有多少光被反射,多少光被折射。

例子1:图中的书,平看会反射,垂直看几乎不反射
image.png
例子2:坐公交车时,往窗外看可以看得到,看前排的人的窗户,看到的却是反射出的人脸。

绝缘体的菲涅尔项
image.png

金属的菲涅尔项
image.png

1.4.1 如何计算菲涅尔项?

精确计算 : 首先计算出两个极化的反射率,然后求平均
image.png

近似计算 :
image.png

1.5 Microfacet Material

1.5.1 Microfacet Theory 微平面理论

微平面理论假设物体表面由不同方向的微小平面组成。每一个微小平面都会根据它的法线方向在一个方向上反射光线。基于该模型,我们对物体的表面进行观察的结果可分为远处近处两种结果的。远处看到的物体表面呈现的是物体表面处无数微小平面与光照的总作用结果,而近处看到的物体表面呈现的是物体真正的几何信息。

简单讲:只要我们离得足够远,很多微小的东西实际是看不到的,看到的是他们总体对表面的作用。

image.png

微平面理论旨在模拟三种现象:
①光滑的平面表面法向分布较为一致,粗糙的平面表面法线分布较为杂乱;
②在粗糙的表面上,微平面可以遮挡其他的微平面的光线,在其他微平面上投射阴影;
③菲涅尔现象

它引入了三个函数来解决:DGF
D:是法线分布函数,它解释了在观看者角度反射光的微平面的比例。

image.png

当定义了物体表面是由无数微小平面组成后,就可以通过这些微小平面的法线分布函数来计算该处与光线的反射。法线分布函数描述了在这个表面周围的法线分布情况,当输入向量h时,如果微平面中有35%与向量h取向一致,则法线分布函数就会返回0.35:

G:是几何衰减函数(shadowing masking term),它解释了微平面彼此之间的阴影和遮罩。

F:是菲涅尔函数,它解释了菲涅耳效应,该效应使得与表面成较高的入射角的光线会以更高的镜面反射率进行反射。

image.png

通过微平面理论我们能渲染出更加真实的结果:
image.png

1.6 Isotropic / Anisotropic Materials (BRDFs)

有些地方的高光会出现一条一条的形状,这是如何形成的?
image.png

Isotropic(各项同性):微表面不存在一定的方向性(或很小) → 法线分布均匀
Anisotropic(各项异性):法线分布有明确的方向性

关键是潜在表面的方向性导致的,当表面法线存在较多方向性时,会出现这种条纹状高光项(Anisotropic),反之会出现圆形状高光项(Isotropic)
image.png

从角度上来进行理解,Anisotropic BRDFs 不仅和相对的方位角有关,还和绝对的方位角有关:
image.png

二、BRDF的属性

  1. 非负(因为其表示的是能量的分布)
    image.png

  2. 线性
    eg:布林冯模型每块分别研究再整合在一起。
    image.png

  3. 可逆性
    交换入射和出射方向,brdf结果一致。
    image.png

  4. 能量守恒
    image.png

  5. 各项同性/各向异性
    如果是各向同性:4维的可以→ 3维
    由于可逆性:不需要考虑正反,方便了BRDF的测量

image.png

三、BRDF的测量

1.为什么需要测量

  • 理论并不准确 → 要测出来
  • 能测出来就不用算了

2.测量方法:

  • 举所有camera和光源的入射出射方向

提升测量效率的方法:
image.png

3.测量出之后呢?

  • 存下来
  • 压缩

4.一个有名的BRDF库
MERL BRDF Database

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。