简单介绍下PBR中常用的有两种工作流
一种为Basecolor-metallic-roughness
一种为Diffuse-specular-glossiness
个人认为Basecolor和diffuse在直观表现上区别有两点。
一点是basecolor没有光影,diffuse有光影。但是在目前的手游贴图制作中,由于机器性能的限制,如果采用basecolor工作流来制作资产贴图的话,一般也会再basecolor上加一些阴影,来弥补手机端光照的缺陷。所以慢慢的在手游中,不知道怎么,即使是basecolor工作流,颜色贴图也会像diffuse一样添加一些光影了。正常情况来说的话,basecolor是没有光影的,光影表现全靠ao贴图,normal贴图以及烘焙的lightmap。
另外还有一个区别就是在百分百金属材质处diffuse表现为黑色,basecolor表现为亮白色。
这也是造成两种工作流在贴图精度不够的情况下,basecolor工作流金属周围会有一圈白边,diffuse工作流金属周围会有一圈黑边。这种现象称之为边缘伪影。
Metall白色为金属,黑色为非金属,灰色为一些受到氧化或者被灰尘盖住的金属表现。再手游中表达不透明玻璃时,一般习惯再玻璃上加一些金属度,来简单模拟玻璃反射效果。
Specular可以有rgb颜色,并不只是灰度图。在直观表现上,这张图不像metail一样,单值能直接调整金属效果。它需要与diffuse和glossiness相互配合才能展现出金属效果。可以去sp里面自己切换成specular shader自己调整试一下,记得添加该shader专属的贴图通道。
Roughness和glossiness互为反相。Roughness越黑越光滑,越白越粗糙。Glossiness反之。
以下为转换方式
A为底部图层,B为顶部图层。C为结果
Specular转换
BaseColor为A+Metallic为B (混合模式为正片叠底) =次级Specular为C
创建一个值为#的填充层为A+次级Specular为B (混合模式为线性减淡) =最终的Specular为C
Metailic转换
创建一个值为#的填充层为A+最终的Specular为B (混合模式为差值) =次级Specular为C
次级Specular为A+BaseColor为B(混合模式为划分) =Metallic为C
Diffuse转换
BaseColor为A+反相Metallic为B (混合模式为正片叠底) =Diffuse为C
Diffuse为A+次级Specular为B (混合模式为线性减淡) =BaseColor为C
Roughness转换反相一下即可,这里就不演示了
效果几乎一致