参考文献:
腾讯课堂taecg
冯乐乐shader入门精要
浅墨CSDN博客文章
传统的贴图渲染技术与PBR渲染的区别:
传统的贴图渲染技术:
传统的贴图渲染技术一般是使用3张贴图来表现模型的效果:漫反射贴图、法线贴图和高光贴图。物体能让肉眼看到的基本颜色,都是通过漫反射贴图来表现的,然后通过法线贴图让模型在细节上产生有凹凸的感觉。最后通过高光贴图控制模型不同部分的高光显示不一样,让人感觉到 同一个模型上有不同的质感。由于光照模型产生高光的锐度不一样,还需要通过一个参数去调节高光的整体锐度。
由于传统的渲染技术是基于贴图的,所以使用同一张法线贴图和高光贴图的模型实际上产生高光的整体是一样的,只是通过法线贴图细节上的不一样,让不同部位的高光方向稍微不同,然后高光贴图等于是一张过滤图,让某些部位的高光显示强弱发生一点变化。
PBR渲染:
PBR的渲染使用了4张基本贴图:
漫反射贴图、金属度(高光度)贴图、法线贴图、环境贴图
漫反射贴图和法线贴图和传统贴图渲染使用的差别不大,区别是漫反射贴图最好把上面的光照信息(比如一些画上去或者烘焙的假光影)去掉,把这些光影的效果交给渲染本身来实现。区别最大的是金属度贴图。
金属度贴图的rgb通道代表了金属感的强弱,alpha通道代表了高光的锐度。和传统的高光贴图不一样,它使用了金属感和高光锐度两个概念,让物体的质感更丰富。
高光贴图只是过滤的功能,但金属度贴图是一种物体表面的属性,你可以控制物体上面某一个部位的反光程度和高光产生的强度,让渲染的过程自动生成它该有的效果。
环境贴图,是控制物体受影响的基本环境,一般是纯黑色的,也就是完全受周围真实环境的影响。但你可以在某些部位的贴图上绘制一些固定的颜色,让贴图颜色和真实环境同时对模型产生影响。比如你要让某个部位一直发光,不受外部光线的影响,可以在环境贴图上控制。
PBR的基础理论:
Physically Based Rendering(简称PBR)是一种着色和渲染技术,用于更精确的描述光如何与物体表面互动。指的是一些在不同程度上都基于与现实世界的物理原理更相符的基本理论所构成的渲染技术的集合。正因为基于物理的渲染目的便是为了使用一种更符合物理学规律的方式来模拟光线,因此这种渲染方式与我们原来的Phong或者Blinn-Phong光照算法相比总体上看起来要更真实一些。
PBR是一种渲染方式,是使用基于物理原理和微平面理论的光照模型,以及使用从现实中测量的表面参数来准确表示真是世界的材质的渲染理念。
PBR是一系列技术的集合,包括GI、PBS等。
PBR的三个条件:
判断一种PBR光照模型是否是基于物理的,必须满足以下三个条件
1、基于微平面(Microfacet)的表面模型。
2、能量守恒。
3、应用基于物理的BRDF
unity中针对PBR的贴图工作流程:
unity中PBS分为Standard(金属流)和Standard Setup(高光流)
区别是产出的贴图不一样,最终实现的效果是一样的。
什么是PBS:
PBR渲染的核心PBS
PBS的核心理论:
![124127e277e6f5abda928ef7cfd7e8b1.png](https://i-blog.csdnimg.cn/blog_migrate/4e35d3b977714761f647d5b7664b4622.jpeg)
1、 物质的光学特性:
![73e2b1cf5febd0dfa43169f58401e872.png](https://i-blog.csdnimg.cn/blog_migrate/963dc833f9b99e11ea070437f937c7c7.png)
(1)金属的特性:
金属具有很高的反射率(>=0.5),金属会立即吸收任何的折射光,因此金属不会出现任何次表面散射和透明效果
金属的所有可见光都来自反射,即所有可见颜色都来自反射。因为金属在受到光的照射之后会立即吸收掉。
![529a9288a42cc04798cfe5003a2d7c42.png](https://i-blog.csdnimg.cn/blog_migrate/667875463ebc260c43e0630ce21a415f.png)
(2)非金属的光学特性:
![754fb810cff7d918b074a14bfdc72ad8.png](https://i-blog.csdnimg.cn/blog_migrate/54510078994a735a6b01c776fce31d39.jpeg)
![93f5091a7b3648e55a33e9d567a7e5a4.png](https://i-blog.csdnimg.cn/blog_migrate/db89d9486d7934a9b3d7e11dbbd2b70e.jpeg)
2、微平面理论:
镜面反射:
入射光照射到物体时直接反射的部分叫做镜面反射或者高光反射。
折射光:
入射光照射到物体时进入到物体内部的部分叫做折射光。
漫反射:
折射光进入到物体内部会再进行反弹,有一部分在物体内部会直接被吸收掉,还有一部分经过反弹之后在射出物体表面这一部分叫做漫反射。
次表面散射(Subsurface Scattering):
次表面散射简称3S,是光射入非金属材质后再内部发生次表面散射,最后射出物体并进入视野中产生的现象,是指光从表面进入物体经过内部散射,然后又通过物体表面的其他顶点出射的光线传递过程。(距离入射点有一段距离),在真实世界中许多物体都是半透明的,比如皮肤、玉、蜡、大理石、牛奶等。当光入射到透明或半透明材料表面时,一部分被反射,一部分被吸收,还有一部分经历透射。这些半透明的材质受到数个光源的透射,物体本身就会受到材质的厚度影响而显示出不同的透光性,光线在这些透射部分也可以互相混合、干涉。
次表面散射,即光射入表面,在材质里散射,然后从与射入点不同的地方射出表面的一种现象。
![4e10106e130c74837f9b432141c02bb5.png](https://i-blog.csdnimg.cn/blog_migrate/d33b3283fdb5584334f1cd2c6d55e696.jpeg)
![f24166a8c79fa82ec0cc01a4ae23306c.png](https://i-blog.csdnimg.cn/blog_migrate/1d6cfd82a84cb700cb0703e61aa7ea0a.jpeg)
![4fcf4fb39833ca6a320767a4a6ffa009.png](https://i-blog.csdnimg.cn/blog_migrate/d5f2816f98ebf13978cb4bdb29e65d69.jpeg)
现实世界的表面大多都不是化学光滑的,这种微观几何上的变化会导致每个表面点对光有不同的反射和折射。
所有的PBR技术都基于微平面理论。这项理论认为,达到微观尺度之后任何平面都可以用被称为微平面(Microfacets)的细小镜面来进行描绘。根据这些微平面粗糙度的不同,采用粗糙度贴图或者高光度贴图进行表示。
![e5a07f65482374e6c116242a4afbbbd6.png](https://i-blog.csdnimg.cn/blog_migrate/43ad72f5894e26ab99e9e9231ce612c5.jpeg)
一个平面越是粗糙,这个平面上的微平面排序就越是混乱,高光越模糊。
![6ca21462f4070e842009043d25811b0c.png](https://i-blog.csdnimg.cn/blog_migrate/e77d0b23565f26341508673667d4b5b3.jpeg)
相反,一个平面越是光滑,这个平面上的微平面排序就越是有序,高光越清晰、锐利。
![0d7f40cdc7b304c6dcd795f1a649787f.png](https://i-blog.csdnimg.cn/blog_migrate/4b6be76a32fb56d3fc6847b579a08918.jpeg)
3、能量守恒:
![07de3fb61eec22b3570c56a6ed90c340.png](https://i-blog.csdnimg.cn/blog_migrate/986aab62cedfab4d9ee8b5c201194a30.jpeg)
4、菲涅尔反射:
菲涅尔效应是一种表示看到光线的反射率与视角相关的现象,也就是光源入射方向与平面法线法线夹角的对应关系,夹角越大,亮度也就越大,反之夹角越小,亮度也就越小。而这效应中的反射率就被称为菲涅尔反射
菲涅尔公式:
用来描述光在不同折射率的介质之间的行为
fresnel = fresnel基础值 + fresnel缩放量*pow( 1 - dot( N, V ), 5 )
N-法线
V-观察向量
L-平行光方向
效果:
![e8e9d5876e7df742c0cf0d97fa2f4de0.png](https://i-blog.csdnimg.cn/blog_migrate/ba53da27474bcfcac8efc8ea4b018741.png)
![0f64d9b4fb0d6876a85fb3b37b52b578.png](https://i-blog.csdnimg.cn/blog_migrate/8dc527642d32dca3998063bbdf338906.jpeg)
5、线性空间光照:
为了保证光照渲染的正确性,所以最好是在线性空间中进行操作与计算,这样才能尽最大的还原显示世界中光于物质的交互。
所以shader中所有的计算都要放在线性空间下进行计算。
![b9429466ba8ef290a6351e29d08fbabb.png](https://i-blog.csdnimg.cn/blog_migrate/b3a953ed65937a8264a58d86266edf1e.jpeg)