17.材质和外观

1.图形学中的材质

在图形学中,材质(Material)是用来描述物体外观和表面特性的属性集合。它包含了控制光的反射、折射、吸收以及其他光学效果的信息,从而决定了物体在渲染过程中的外观。

渲染方程中那一项和材质有关? → BRDF,BRDF决定了光如何被反射

Material == BRDF

2.漫反射材质:光线打到一个点上均匀的朝各个方向去

漫反射材质可以定义任何一个点的漫反射系数,各个点对光的吸收部分和强度不同,因此显示不同的颜色

重新定义漫反射系数

首先根据漫反射定律,入射光都会均匀的被反射到各个方向上去

现在假设各个方向入射的radiance都是均匀且相同的,假设这个单位面积不吸收任何光照,根据能量守恒定律,接收的irradiance和出射的irradiance都应该是一样的,进而各个方向出射的radiance也应该和各个方向入射的radiance是相同的

那么就可以写出下面的反射方程,没有自发光,假设入射的radiance和Brdf都是常数,剩下的就是在半球上对余弦函数进行积分,这部分结果等于Π,因为入射的radiance等于出射的radiance,也就是说要等于,所以Brdf的结果就是.这个时候就是完全不吸收能量的BRDF。

可以定义反射率这个概念。英文名是albedo,可以是单通道的一个数或者三个通道(RGB)的数也可以是光谱。它的值在0-1之间。这样就引入了不同颜色的BRDF,brdf的值在0-之间

3.Gloosy material(BRDF)

类似于镜面反射但是又没那么光滑的反射,不同的材质反射出来的颜色也不相同

4.Ideal reflective / refractive

material (BSDF*)

既有反射又有折射

计算反射光线

计算折射光线

斯内尔定律/折射定律

只有从光疏介质到光密介质才会发生折射,否则会发生全反射现象

下图从水底向外看,只能看到一个锥形区域,范围大概是97.2°,超过这个范围的就会发生全反射

折射用BTDF表示,反射是BRDF,一般用散射也就是BSDF统称这两种

5.Fresnel Reflection / Term(菲涅尔项)

入射光线与物体的法线的夹角决定了反射和折射的能量的分布,通过菲涅尔项就可以解释到底有多少能量发生了反射和折射

例子1:图中的书,平看会反射,垂直看几乎不反射

例子2:坐公交车时,往窗外看可以看得到,看前排的人的窗户,看到的却是反射出的人脸。

入射光与物体的法线的角度与反射能量的关系(绝缘体)

s和p是两个不同方向的极化,与光的波动性有关,极化是指光只沿着某一个方向震动

导体的菲涅尔项

即使垂直看去反射率也很高,例如镜子一般用银质或者铜制的镜子,很少用玻璃的镜子

菲涅尔项计算公式

左边计算的是两个极化,会告诉两个不同的反射率,我们平常考虑不极化的光就将这两个反射率平均起来

因为上面的计算太复杂了,所以后面有人给出了简化的近似计算公式

在零度的时候反射率和二者的介质有关系,当90°的时候反射率等于1,这样不管是对导体还是绝缘体都可以近似的非常好,只要不是对材质的要求非常高。

6.微表面材质

1.微表面模型

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

2.微表面理论

  • 假设物体表面粗糙
  • 远处看(宏观尺度):平面且粗糙的
  • 近处看(微观尺度):可以看到凹凸不平的表面且每一个表面的微元都是完全镜面反射
  • 每个微表面都有法线,也就是自己的朝向
  • 从远处看是材质/外观,近处看是几何

3.Microfacet BRDF

  • 关键:微表面的法线分布
  • Glossy:法线分布集中在宏观法线周围 ; 粗糙/Diffuse:法线分布分散
  • 图2:D=法线分布 F=菲涅尔项 G=几何项(左边面可能会挡住右边的面 →自遮挡/投影现象)

菲涅尔项表示一共有多少能量被反射,shadow masking项用来修正自遮挡自投影的现象,也就是

grazing angel(掠射角度),光方向与物体表面几乎平行的时候这种现象最明显,法线分布函数决定了光线到底是怎么反射的,集中还是发散,进而可以决定材质类型

7.区分材质的方式

1.材质分为两类:各项异性和各向同性

各向同性:微表面不存在一定的方向性(或很小) → 法线分布均匀

各项异性:法线分布有明确的方向性

2.各向异性的BRDF

如果BRDF不满足在相同的方位角旋转得到的还是原来的BRDF,那就是各向异性材质

  • 和方位角(绝对立体角)有关
  • eg :拉丝金属、尼龙、天鹅绒

8.BRDF的性质

1. 非负(能量的分布)
2.线性
3.可逆性
4.能量守恒
5.各项同性/各向异性

如果是各向同性:4维的可以→ 3维

由于可逆性:

//BRDF的测量有用

9.测量BRDF

1.why 测量

理论并不准确 → 要测出来

能测出来就不用算了

2.做法

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

3.测量出之后呢?

存下来

压缩

4.一个有名的BRDF库

MERL BRDF Database

相关推荐
Padid2 天前
Unity SRP学习笔记(二)
笔记·学习·unity·游戏引擎·图形渲染·着色器
refineiks8 天前
three.js绘制宽度大于1的线,并动态新增顶点
3d·图形渲染·webgl
Winston Wood11 天前
一个简单的例子,说明Matrix类的妙用
android·前端·图像处理·图形渲染
森龙安11 天前
VulkanTutorial(8·Shader modules)
图形渲染
云渲染图科普匠13 天前
3d室内设计效果图渲染平台哪个好?瑞云快图怎么样?
3d·图形渲染·3dsmax
先知demons14 天前
antvG6如何实现节点动画、连线动画、切换节点图标
前端·javascript·vue.js·图形渲染·canva可画
3DCAT实时渲染云15 天前
边缘计算技术的优势与挑战
实时互动·边缘计算·图形渲染
大耳猫18 天前
Android OpenGL天空盒
android·kotlin·android studio·图形渲染
大耳猫20 天前
Android OpenGL触控反馈
android·kotlin·android studio·图形渲染
木市门20 天前
【GAMES101笔记速查——Lecture 16 Ray Tracing4】
图像处理·笔记·图形渲染