PBR的工作流

Posted 暮志未晚Webgl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PBR的工作流相关的知识,希望对你有一定的参考价值。

主流的工作流
Metallic WorkFlow

  1. 首先需要BaseMap(albedo)和Metallic Mask 两张贴图
  2. DiffuseColor 可以通过albedo * (1 - metallic)得到,金属的Diffuse = 0
  3. SpecularColor F0 可以通过lerp(0.04,albedo,metallic)得到,非金属反射率很低,统一近似0.04,也就钻石比较高,需要额外修改。
  4. 反射率 1.0-(1-metallic)*(1.0-0.04)用于计算IBL的反射,结合Roughness用来计算F90时候的反射率
  5. ue 内置pbr对Specular进行了改良,增加了Specular节点,lerp(0.08 * Specular, BaseColor,Metallic);默认值 0.5,其实0.5*0.08 也是 0.04 。 这样可以修改specular来实现模拟钻石。

能成为主流的主要原因是能省一张图片吧。

Specular WorkFlow

  1. DiffuseColor 可以直接从Albedo贴图中获得
  2. SpecularColor F0 从SpecularColorMap中获取
  3. 没有金属和非金属的概念
  4. 能量守恒 DiffuseColor+SpecularColor 小于等于1
  5. 在unity中,光滑度一般可以放到DiffuseMap的透明通道或者SpecularMap的透明通道
  6. 法向贴图
  7. ao贴图

paragon WorkFlow
需要三张贴图:
ID Mask 用于表示区域 污渍Mask 划痕Mask

  1. DIffuseColor 由三种贴图混合得到标记区域,从shader中直接计算对应的数值。
  2. SpecularColor F0 由三种贴图混合得到标记区域,从shader中直接计算对应的数值。
  3. 使用这种,颜色直接指定特定的颜色,可以实现多种颜色变化。

以上是关于PBR的工作流的主要内容,如果未能解决你的问题,请参考以下文章

关于PBR贴图那些事儿

OpenGL阴影添加学习材料及总结

unity之PBR材质流程与材质制作实践

将 PBR 模型导入 Xcode 会导致不正确的着色器属性

闪烁的金属输出纹理...为啥?

模具钢介绍——热作模具钢