CG游麟网官方站
查看: 6872|回复: 23

[3D软件技术教程] 【PBR】基于物理渲染的基础理论1.0版

[复制链接]

960

主题

6202

帖子

77万

积分

天外飞仙

Rank: 16Rank: 16Rank: 16Rank: 16

麒麟币
763866
任务币
0
威望
3
贡献
387
主题
960
在线时间
203 小时

最佳新人忠实会员

发表于 2016-12-30 11:30:39 | 显示全部楼层 |阅读模式
基于物理渲染的优点
  • 很容易就可以作出真实和照片级的效果。
  • 同一配置可以适用于在不同HDR光照环境下。
  • 接口简单而直观,都是基于世界真实的参数。(如粗糙度,金属度,等等)。
  • 不需要美术去提供经验性的"奇怪"参数和配置。
  • 更容易去解决问题和扩展需求。

基于物理的渲染和和传统区别
  • 有着基于物理规则的光照模式
  • 有着无处不在的fresnel效果
  • 能量守恒“energy conservation”,物体平面的反射光无法超过它所解接受的入射光
  • 基于物体材质,会分辨金属和介电质,微平面的概念
  • 线性空间的光照,支持gamma矫正的,HDR渲染和tonemap

光与物质的交互(light and matter)
光是是一种横向传播的电磁波,电磁波的波长范围非常广,但只有390~760nm之间的一段波谱是人眼可见到的,也就是在图形学里对渲染着色起作用的部分。另外因为光有波粒二象性的缘故,有时候我们在图形学里也会把光做为光子(photon)来处理。
2235455dpp8pnhq54tiapt.jpg
当光投射到传感器(眼睛,照相机等)上时,颜色和亮度就会被吸收并感知,而光与物质交互后被感知的,就是物体的颜色。

物质对光的影响,可以用折射率(refractive index)来描述,当由复数来表示折射率时,它的实部影响速度(相对于真空中的速度),虚部来影响光的衰减(被吸收),折射率会改变光的波长。

我们先根据物质按照内部折射率是否均匀来进行分类:

均匀介质(Homogeneous Media)
内部密度相同的物质,意味着他有唯一的折射率,对应透明的均匀物质来讲(如水,玻璃),光通过时,并不会改版光的颜色或强度,而当物质对某一种可见光谱有吸收率的时候,那么,光就会随着在物质内的传播距离而逐渐被吸收,而光的方向并不发生改变,这就是光被吸收(absorption)。
223512f32uylyfeau0jyi4.jpg
光穿透玻璃和水时,方向,颜色和强度都不会发生
223907zr4z238634bvrlsn.jpg
方向没有变化,光但随着距离会丧失强度(改版颜色),也就是光被吸收了。

非均匀物质(heterogeneous medium)
当非均匀物质内部的折射率非常突然的时候,这时就会发生散射(Scattering)现象,光会被分割为多个方向,但光的总量并不会发生变化。
223449homd1j926uk9hze2.jpg
除了以上两种交互外,  物质还可能因为其他能量发出新的光,称为自发光”emission“。

223517mntstisw3tocot47.jpg
光与物质交互的三种方式,吸收,散射,发光。

光与平面的交互(light and object surface)
上一个段落讲点,光在密度不同的物质内传递的现象,而渲染中最为典型的,是发生在物体表面时,关于光与空气和物质之间的散射效果。
这个时候平面散射光会分为两部分:进入平面的部分(折射,在物体内部传播中被吸收或散射),从平面出去的部分(反射)。
22382340nfd6k9966h4kh9.jpg 2235419kib6zo351xx3kzc.jpg
一个假设完美无限光学平坦的平面(简称光学平面)反射效果,平面两侧的空气和物体有各自的折射率

但实际上,平面大多都不是光学平面(除了镜子或镜头等),而是一种微几何体(Microgeometry),表面都会有一些比可见光波长要大的不规则凹凸,但又小到无法覆盖一个像素或者采样点,所以,我们就把这种非光学平面,理解为一组微小光学平面的集合,而可见光的反射,实际上是在平面各个点上轻微不同方向的反射集合,也就是后面会提到的微平面理论(Microsurface Theory)。
223912zotqvvj704j72zoz.jpg
roughness
上面的平面相对平滑时,表面方向的变化也比较轻微,从而反射光的方向变化也较小,有了较清晰的反射。而下面的表面粗糙,表面方向的变化范围也较广泛,反射光的方向变化也比较大,出现了模糊的反射。
001808qhnrd4ecfxcivuxj.jpg
两个平面在微观上的粗糙度(roughness)不同导致不同的反射效果

漫反射光与镜面光(diffuse and specular)
这里,我们光和平面交互分为两个项目来描述,从平面直接反射的部分称为镜面反射光(Specular),来源于拉丁语的“Mirror”,另外一部分光,传入到物体内部,而经过折射,被材质吸收(转变为热能),或者内部进行散射,一些散射光最终会重新返回从平面折射出来,并被摄像机或眼睛所捕捉到,称为漫反射光(Diffuse)。漫反射光被物质吸收并散射后,会成为不同波长的光,这也就给予了物体颜色,比如物体吸收了蓝色以外的光,那物体就是蓝色的,而因为散射的混乱比较均匀,从每个方向看起来都是一样,所以这点和镜面光不一样。也可以使用这个名字albedo来描述。

2239152cew7eolglecoo5e.jpg 223819v86jowj6oxvpsjc7.jpg
非光学平面反射(Surface Reflectance)和折射散射(Subsurface Reflectance)的宏观视图,形成了Diffuse和Specular。

金属和非金属材质
物体内部的折射光的作用,取决于物体内部的组成,内部组成的不同,可以分为,金属(metal)导体,电介质(Dielectrics)绝缘体和半导体(Semiconductors ),因为半导体在渲染中出现的机会不多,在处理物体时简单的分组为金属和非金属就可以了。金属会吸收所有的折射光,而且通常会比绝缘体的反射率要高,通常的反射率要达到60%~90%,而绝缘体则是0%~20%,反射率高,就防止了入射光被吸或折射,这样,金属就有了”闪亮“的外观。
223543dy0czrrsc2hr1vfu.jpg
金属的折射光能量都立刻被自由电子吸收

而非金属(绝缘体),光会在内部进行吸收和散射活动,最后,一些折射光会通过散射,重新从入射平面反方向射出
223909g76bc6m6a1mq0xaq.jpg
非金属的折射光会进行散射

导体的反射会跨越光谱,所以反射是有颜色的,虽然颜色反射在导体里比较罕见的,但在一些日常的材质里(金,铜,黄铜)还是可以看到这种效果,而绝缘体的反射通常是他们的本来颜色,因为金属会吸收所有的穿透光,也就没有任何漫反射(diffuse)部分,但金属氧化的部分和一些表面残留物还是会散射少量的光。也是因为这些原因,可以使用“metalness”(金属度)这种参数,虽然不是纯粹的pbr,但更受美术的喜欢。
2235528ee8nglh84ygnogt.jpg
不同材质的漫反射颜色,金属为0.

次级表面散射(Subsurface Scattering)
从前面的图中,可以看到折射后的散射光从平面不同的点发射出来,和原始的入射点的距离也各不相同,可以统称为次级表面散射光,根据散射出的距离和入射点像素的大小的关系,可以分为两种情况:
223444fm9f2mhny68h2g2o.jpg
如左图所示,当像素的尺寸大于入射到出射点的距离时,这个距离就可以被忽略,可以认为这个平面散射出的光和入射光是在相同点上,也就是右图的样子,也就是我们常说的漫反射。

22352069uku1kvymh2yev0.jpg
当像素小于出射到入射距离时,每个点的着色就会收到其他光入射到其他点的影响,也就是常说的“次级表面散射”技术,很重要的一点是,它和普通的漫反射着色是一种物理现象(都是折射光的次级表面散射),唯一不同的就是散射的距离与观察点大小的关系,一个通常被认为是“次级表面散射”的表现,当在较远的距离观察时,就可以被认为是漫反射着色(例如远距离角色的皮肤),而“正规的漫反射着色”在很近距离观察时,也会有次级表面散射的效果。

无处不在的Fresnel反射
Fresnel表现的是材质的反射率和入射角(也就是光源入射向量和平面法线向量的夹角)的对应关系,也就是说,入射光的角度越大,反射率也会越强,Fresnel反射项通常成为F( )
223816cjqdq5qvomojgozl.jpg
以水面为例,正常入射事只有3%的反射,而水平时则几乎到100%。

PBR的一个改变,就是对fresnel方程的修正上。这个会在下一篇有公式的章节做进一步解释
对于所以的材质来说,当以掠射角观察时,光滑物体接近“边缘”的地方,会形成完美的镜面,也就是说特定的角度上,“任何表面光滑的物质都可以成为完美镜面”。
除了金属外,大部分的材质的反射和角度对应曲线或梯度的变化都不是很大
223459nfd0sbsbnsswlipf.jpg
非金属的反射系数,在边缘处亮度更高

2237429vp9vdwyuv0nvzv9.jpg
当入射角度为0时,非金属材质(2%~8%),水和液体是2%,砖块8%,其他有机材质和塑料是5%,半导体和晶体是15%~50% 金属60%~90%

如果要达到真实的fresnel,那么美术对fresnel的控制应该越少越好,需要提供一些参数值来使用,通常是光泽度(Gloss,或粗糙度 Roughness)和反射率。提供一个基础反射率,来设置平面最小的反射值,让fresnel曲线从这个最小反射值开始,以满足不同角度的需求。


Surface Reflectance

前文已经提到了微几何体,之所以有微平面的概念,因为从宏观来看,在我们渲染模型网格时,使用法线贴图就可以描述表面小的细节,但这样仍然会有一定的缺失,很多真实世界的平面上,还是有一些微小的凹陷,裂缝或突起,而用肉眼是很难看清楚的,小到连正常大小的法线贴图也无法来表现,虽然肉眼无法看到,但这些微观特征,还是对Diffuse和Specular产生了影响。

微平面的细节,对反射的影响更多,也就是Specular,因为粗糙的微平面会把反射光分散或者内部遮挡,所以有了下面两个项目来描述这个现象

Normal Distribution Function
  因为微几何体的所以平面的方向,并不是均匀分布的,如果是分布比较均匀的光滑平面,那么光就会在几乎相同的方向反射,产生清晰的高光,如果粗糙表面则是模糊的高光. 有多少微平面点的法线更倾向宏观平面的法线方向,我们把这种平面法线方向分布的统计,称之为microgeometry normal distribution function D(),和fresenl方程不同的是,D()并没有一个类似0~1的范围,而是来帮助确定微平面法线在某一个给定方向上的集中度。

  所以,D()决定了高光的镜面反射高光的大小,亮度和形状,一些D()会提供前面提到的类似"Roughness(粗糙度)"的参数(也可以是glossiness),当粗糙度降低时,微几何体平面的法线方向就会更集中在宏观的平面法线方向上,D()的值也会变高。除了指定粗糙度参数外,也可以通过传递一张Glossn map的方式提供更高的细节。
223832mlizxa665006ys05.jpg
不同Roughness的表现
002716022ocf8t6f4hzfcs.jpg
左侧Specular Map ,右侧 gloss map

Geometry Function  
因为微几何体的构造缘故,一些入射光的平面点被内部遮挡,成为了内部阴影而无法接受光照(也就不能反射光)。
2238264r555kkkekddeeee.jpg
shadowing现象

而有一些反射光被内部遮挡,他们的反射光无法被观察到,虽然有反射光可以多次反弹后再被视点观察到,但在微平面理论里可以忽略不计了。
223454eovylslal7j7bbds.jpg
masking现象

这因为有这种现象,所以需要有一个Geometry Function G(),来代表反射光的可见度,所以G()是在0~1之间的一个范围值,在着色模型里,有时会和其他参数合并称为V()(Visiblity)。和D()一样,因为微平面有凹凸感,当它的粗糙度提高时,shadow和masking的现象也会增加,粗糙度高的平面会光滑平面更阴暗一些,G()也要收到roughness参数的影响。另外G()也是下面要讲的能量守恒的一个基础,它使得反射光不会高于平面的入射光。

Energy Conservation 能量守恒
镜面反射光(Specular)与漫反射光(Diffuse)是相互排斥的,因为离开表面的光总量不能他接受的入射光强,你的漫反射与镜面反射综合不能超过1
http://www.codecogs.com/favicon.ico[/img]
这意味着,如果你的希望材质有较高的镜面反射效果(高反射率),就需要要去降低漫反射,能量守恒是PBR的一个重要的方法,可以让艺术家在设置反射率和反照率时(高光颜色和漫反射颜色)不会违法物理定律
223559lttykv5ndomtcyoz.jpg
同一个材质,从100%的漫反射到100%的镜面反射转化过程

能量守恒对高光部分的处理,也称为“Energy Preserving Specular”,通常是在渲染方程里添加Normalization Factor来实现的能力守恒
223823xm6101oj3x66cecz.jpg 2235499b5qqvzq5igipdn9.jpg
是否使用Normalization Factor的对比,左下面使用Factor的亮度更淡了一些,因为左上非能力守恒的模型反射了更多的光,而下面能力守恒的模型,高光变得更加明亮和集中。

当把微平面理论引入到着色系统后,那么反射多少光,就要受到平面粗糙度的影响,渲染粗糙度较大的表面时,会获得较大范围和模糊的反射光,而光滑表面的则更清晰。虽然材质都反射相同总量的光,但粗糙平面的会把把反射分散到不同的方向,而光滑平面则反射的更为集中。比如你高光半径提高了10倍,那么暗度将提高100倍。
223919hw6o69e5u75d5hos.jpg
Gloss的变化的反射效果,Normal Distribution Function(D())也必须是能量守恒所的。
223828evleajc1jz309xjf.jpg
实际应用上漫反射较多而且粗糙的材质,会反射模糊和更广阔的高光,比较光滑而反射率高的材质则反射更明亮和紧凑的高光

理论概述就先到这里,本文也是从很多资料中整理而来,不能算是原创吧,资料太多,可能收集和描述的不够全面,随着后面章节的添加,这个部分应该还会做进一步的修改。
楼主热帖
回复

使用道具 举报

0

主题

5493

帖子

6048

积分

四方传颂

Rank: 9Rank: 9Rank: 9

麒麟币
418
任务币
0
威望
0
贡献
0
主题
0
在线时间
0 小时
发表于 2016-12-30 11:42:08 | 显示全部楼层
过来看看的
回复 支持 反对

使用道具 举报

2

主题

5420

帖子

5998

积分

誉满一方

Rank: 8Rank: 8

麒麟币
515
任务币
0
威望
0
贡献
1
主题
2
在线时间
4 小时

最佳新人

发表于 2016-12-30 12:22:22 | 显示全部楼层
相当不错,感谢无私分享精神!
回复 支持 反对

使用道具 举报

0

主题

5554

帖子

6717

积分

四方传颂

Rank: 9Rank: 9Rank: 9

麒麟币
1033
任务币
0
威望
0
贡献
0
主题
0
在线时间
0 小时
发表于 2016-12-30 12:47:31 | 显示全部楼层
不错,支持下楼主
回复 支持 反对

使用道具 举报

0

主题

5499

帖子

5720

积分

誉满一方

Rank: 8Rank: 8

麒麟币
83
任务币
0
威望
0
贡献
0
主题
0
在线时间
0 小时

最佳新人

发表于 2016-12-30 13:32:49 | 显示全部楼层
资源太好!寡人的麒麟币已经按耐不住了!
回复 支持 反对

使用道具 举报

1

主题

4813

帖子

4万

积分

垂名青史

Rank: 16Rank: 16Rank: 16Rank: 16

麒麟币
33915
任务币
450
威望
1
贡献
6
主题
1
在线时间
1293 小时

最佳新人忠实会员

发表于 2016-12-30 14:25:41 | 显示全部楼层
资源甚好,发帖艰辛,且阅且珍惜!
回复 支持 反对

使用道具 举报

0

主题

5192

帖子

7943

积分

四方传颂

Rank: 9Rank: 9Rank: 9

麒麟币
2627
任务币
0
威望
0
贡献
0
主题
0
在线时间
1 小时
发表于 2016-12-30 15:18:40 | 显示全部楼层
这个资源实在太好了!麒麟币实在不够,是否能以身相许?
回复 支持 反对

使用道具 举报

1

主题

4813

帖子

4万

积分

垂名青史

Rank: 16Rank: 16Rank: 16Rank: 16

麒麟币
33915
任务币
450
威望
1
贡献
6
主题
1
在线时间
1293 小时

最佳新人忠实会员

发表于 2017-1-3 21:47:42 | 显示全部楼层
资源甚好,发帖艰辛,且阅且珍惜!
回复 支持 反对

使用道具 举报

0

主题

114

帖子

306

积分

小有名气

Rank: 3Rank: 3

麒麟币
150
任务币
0
威望
0
贡献
0
主题
0
在线时间
48 小时
发表于 2017-1-6 13:08:23 | 显示全部楼层
我尽然没看懂。。。。。。
回复 支持 反对

使用道具 举报

3

主题

112

帖子

6122

积分

四方传颂

Rank: 9Rank: 9Rank: 9

麒麟币
6010
任务币
100
威望
0
贡献
32
主题
3
在线时间
267 小时
发表于 2017-1-6 13:36:17 | 显示全部楼层
很崇拜楼主,这个资源不错!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线客服
客服QQ:
47413829
在线时间:周一至周五
9:00-22:00 Email:
47413829@qq.com
举报:网盘资源失效
在线客服
快速回复 返回顶部 返回列表