基于物理的渲染(Physically Based Rendering , PBR)在高质量实时渲染中应用广泛,其主要知识体系在闫老师的games101中已经铺垫学习过了。
Blinn-Phong 反射模型
BRDF和渲染方程
微平面理论–Cook-Torrance模型计算BRDF
IBL(Image-Based Lighting 基于纹理的光照)
主要以颜色贴图(diffuse map),反射贴图(specular map),法线贴图(normal map)三个组成,分别反映了颜色、反光、凹凸信息。
这个阶段主要分为2个流程,金属度粗糙度流程(metalness-roughness workflow)和反射度光滑度流程(specular-smoothness workflow),主要变为4张贴图。
由颜色贴图(diffuse漫反射,在unity中叫Albedo),反射(specular,反映了BRDF的F0,三通道),光泽度 (Glossiness/Smoothness,单通道)组成。
注意:金属的diffuse为黑色图,非金属的specular比较暗(0.15-0.3),金属的specular比较亮(0.6-1.0)。
Base Color与Diffuse容易混淆,Base Color带了金属的反射率值需要配合上Metallic Map一起使用,其本质上是Diffuse和Specular的结合,这也是有时候通过先创建金属/粗糙度材质再将其转化为高光反射/光泽度的原因之一。(区别见下图)
反射度光滑度流程其实是对光照公式更直接的描绘。在shader内部实现的时候,会把BaseColor和metallic转换成diffuse和specular再计算。
主流引擎一般采用金属度流程,主要因为其对美术更友好并且Metallic比specular三通道少亮个通道,可以用来放AO和smoothness。但这样也会牺牲一部分质量、转换过程也会产生损耗(见下图),因此高质量的离线渲染中会采用反射度流程。
存储表面的法线方向。方向是相对空间而言的,针对不同空间有3中法线贴图:Tangent切线空间、Object对象空间、World世界空间。
大部分浅蓝紫色,其中B通道表示法线方向的斜率;R通道表示左右切线方向的斜率;G通道表示切线方向向上或向下的斜率,如下图。
大部分看起来五颜六色,渲染快但无法镜像uv会浪费,且不能进行uv动画,因此一般切线空间更好。
包含高度信息(不包含角度)----单通道
「Substance Painter、Substance Designer导出的Height高度图等同于Bump凹凸贴图,而不是Displacement置换贴图的信息。」
描述了表面某点能获得多少环境中的光,单通道。该贴图只影响漫反射分配,不影响高光反射分配。
控制表面发射光的颜色和亮度,用于内部发光的物体,屏幕、led等。
定义贴图的不透明度。当材质使用不透明度贴图时,它将充当mask隐藏对象的某些部分。例如可以将“不透明度”贴图用于剪切树叶形状,穿孔表面和网格等。
可以改变模型对象的几何形状(顶点),但需要提高顶点数,通常结合曲面细分使用,因此开销大,开销和质量Dispalcement>Normal>Bump(>Reflection)。
对模型轮廓能实现Bump和Normal无法实现的效果。也作为高度图来生成地形,并结合凹凸贴图实现丰富的地形效果。
通常作为颜色贴图的一种全局使用。
Displacement Map的另一个用途,也称为Virtual Displacement Map虚拟置换贴图,陡峭视差贴图额外通过增加采样数量提高陡峭处的正确率,但还是会在陡峭处有断层和锯齿,目前一般采用Relief Map(浮雕贴图)和Parallax Occlusion Map(视差遮蔽贴图)解决。
描述了比AO图更小尺度的光线遮蔽信息。只包含模型对象表面的凹面区域而不包括凸面区域,因此缝隙图通常大部分都是白色的,只有凹陷区域是深色的。
与AO图不同的是,缝隙图影响不仅会影响漫反射,还会影响高光反射部分。
环境法线贴图能够和AO图结合使用以改善漫反射间接照明,通过将环境发现代替法线用于间接照明来使漫反射间接照明更接近于全局光照。
存储网格的凸度/凹度的纹理,黑色的值代表了凹区域,白色的值代表了凸区域,灰色值表示中性/平坦区域。通常用于一些特殊效果如磨损等,也是卡通渲染中的常用贴图。
记录了表面厚度信息,可以用于辅助制作表面散射(SSS,简称3S材质)材质,或直接扩散/反照率假装SSS的效果。其黑色代表薄的地方、白色代表厚的地方。通常用在角色材质上。
使用R/G/B三个通道描述X/Y/Z轴上顶点对应的位置,通常用来实现模型底部到顶部的渐变效果,如墙壁底部的污渍、石块底部的青苔。
存储的是向量场数据,可以用来制作流动的水面效果。
SIGGRAPH 2010论文Vlachos/Water Flow in Portal 2中分享了用流动贴图制作流动水面的技术。
存储预渲染的光照信息(颜色和亮度),用于静态模型上的间接光照,解决实时动态光源效果不好且消耗性能的问题。
环境球映射(会在靠近极点的地方出现扭曲)
环境盒映射,6张展开图像组成(不能模拟多次反射的结果)
1,毛星云大神的【基于物理的渲染(PBR)白皮书】系列
2,Adobe-Substance学院官方–创建PBR纹理实用指南
3,八猴渲染器–PBR纹理转换
4,游戏资源中常见的贴图类型