【技术美术百人计划】Metallic与Specular流程
什么是次时代:
高低模烘焙过的、和使用PBR贴图的模型
PBR:基于物理渲染
PBR基础流程:

一、两种流程
金属/粗糙度流程(Metallic/Roughness)
符合直觉,调参容易,但是没办法方便调节零度菲涅尔反射值
镜面反射/光泽度流程(Specular/Glossiness)
可以方便调节零度菲涅尔反射值,但是错误的贴图会打破能量守恒
两种流程的通用贴图:
法线贴图(normalMap)
AO贴图(ambientOcclusionMap)
高度贴图(heightMap)
二、金属/粗糙度流程(Metallic/Roughness)
1、baseColor(RGB贴图、sRGB)
储存数据:非导体(电介质)的漫反射颜色/反照率颜色(DiffuseReflectedColor/Albedo)和金属导体的镜面反射的F0值
非导体使用0.04的F0反射值
混合材质(非导体和金属导体混合材质)则可以认为同时储存了两种数据
非导体(即电解质、非金属):暗色值,尽量不要低于30-50 sRGB,严格控制下不低于50 sRGB。亮色值贴图不应高于240 sRGB。
导体(金属)的反射值:金属一般会有70-100%的镜面反射,映射到sRGB大概为180-255。
在SubstanceDesigner软件中,可以通过PBR BaseColor / Metallic Validate节点来验证是否在合适范围内。

BaseColor要点:
贴图的颜色对于非金属来说是它的漫反射颜色,对于金属材质来说是它的镜面反射的F0值(ReflectanceValue,所带色相与其反射波长有关)
BaseColor除了微观遮蔽信息以外,不应含有任何光照信息。
暗色值在宽松条件下不应低于30 sRGB,严格条件下不应低于50 sRGB
亮色值不应高于240 sRGB
原始金属反射值都非常大,大概能达到70-100%镜面反射,映射到sRGB范围大概是180-255
2、Metallic贴图
储存数据:对应区域的金属度,作用类似于图层遮罩。告诉着色器如何去解读BaseColor贴图中的RGB数据。0.0纯黑代表非金属,1.0纯白代表纯金属。

Metallic要点:
金属被氧化、腐蚀、上漆、覆尘后,这些区域要被当做非导体(电介质)材质来看待
Metallic中,0.0纯黑代表非金属,1.0纯白代表纯金属,我们可以用过渡的灰阶来表示不同程度的氧化和污垢。
如果Metallic贴图有值低于235 sRGB,那么在BaseColor中对应区域的反射值也该降低
3、Roughness粗糙度贴图
在粗糙度贴图中,0.0代表了平滑表面,1.0代表了粗糙表面
三、镜面反射/光泽度流程(Specular/Glossiness)
1、Diffuse RGB贴图-sRGB
储存数据:漫反射颜色(Albedo)
要点
Diffuse贴图中的颜色表示漫反射颜色、原始金属由于没有漫反射,颜色应该为纯黑0.0
Diffuse贴图除了微观遮蔽信息以外,不应含有任何光照信息。
暗色值在宽松条件下不应低于30 sRGB,严格条件下不应低于50 sRGB
亮色值不应高于240 sRGB
2、Specular贴图
储存数值:F0
F0都是基于真实世界测量的,没有需要,尽量不要使用反常规值,严谨一些的话,你甚至可以查表。不要忘记线性空间与sRGB的转换。
要点:
镜面反射贴图包含F0值
普通非导体的反射范围在2-5%,在sRGB中,这个值大概在40-75之间
普通宝石的反射值范围在0.05-0.17(线性空间)
普通液体的反射值范围在0.02-0.4(线性空间)
原始金属反射值可高达70-100%的镜面反射,sRGB约为180-255
如果你无法找到某个材质的折射率,可以先假设F0为4%,也就是塑料的F0
3、Glossiness贴图
光泽度贴图适用于描述表面不平整的贴图,表面不平整会造成光的散射。
纯黑代表粗糙表面,纯白代表平滑表面,和M/R流程里的粗糙度是相反的,但是在设计侧有着类似的制图原则。
四、两种流程的问题
共同问题:当贴图、纹素过小时,金属导体与非金属导体边缘会产生白边/黑边,所以要有一张良好大小和布局的uv
Metallic/Roughness流程
优点:
在M/R流程中,F0值都是确定好的,设计师在对非导体的F0赋值时不易出错。
纹理缓存压力更小,因为金属度贴图和粗糙度贴图都是灰度图
目前兼容性最广的流程
缺点:
非导体的F0值固定为4%,无法调整。然而大多数实现流程中都有控制器直接覆写这个流程,不能算是硬伤
白边较为明显,尤其是低分辨率下
Specular/Glossiness流程
优点:
边缘效应不会过于明显
可以在镜面反射贴图中对非导体(电介质)材质的F0值自由调整。
缺点:
由于在S/G工作流的镜面反射贴图中,非导体的F0值可自由调整,导致设计师容易输入错误的值,在着色器中打破能量守恒定律,造成不正确的渲染
新增了一张RGB通道的镜面反射贴图,性能消耗更大
S/G工作流有些与传统工作流太相似,而实质对数据的要求可能是不一样的,导致设计师误解或误操作。这种情况下要求设计师有更好的PBR理论知识。
五、流程转换


