Unity官方教程-Creating Believable Visuals通读、笔记、个人理解(5.PBS材质、标准Shader和贴图)

5.PBS材质、标准Shader和贴图

材质定义了光如何作用于模型的表面
unity 基于物理的Shader(PBS)是继法线贴图之后的一项伟大技术,在你深入了解自定义Shader和可编程渲染管线之前,你最好首先了解unity自带的PBS
对于DDC软件建模人员来说,绝大多数情况下,只需要Albedo, Smoothness, Normal Map 和 AO4张贴图,一个模型的表现就已经足够好了。

5.1 Standard VS Standard Specular

在unity自带的PBS中,我们有两个选择
  • 一般情况下,使用Standrad比较简单: 高光和颜色是根据Albedo、Smoothness和Metallic自动计算出来的。

    • Metallic=1时,Albedo(包括高光和亮度)和光滑度(Smoothness)共同决定了物体表面的亮度和光泽度:
    • Metallic=0时,Albedo不影响高光,仅显示为物体本来的漫反射颜色。
    • Smoothness定义了模型的光泽度Glossiness(或粗糙度(Roughness)),存储在金属度贴图(Metallic Map)的α同道中。


      image.png
  • Standard Specular Shader,在你想表现很强的高光效果时,可以用,一般用来表现一些比较极端的材质。

  • Albedo,翻译过来就是反射光的意思,它同时包括了直接反射和间接反射光:

    • Albedo的颜色越白,反射的光就越多:


      一束聚光灯的照射下,albedo=0时不反光,255时具有很强的反射光
  • albedo的颜色导致怎样设置比较合适呢?没有一个固定的参数,不过以下这张图可以大致确定这个范围:


    image.png

    但是仅仅靠肉眼去判断这个范围是不大可靠的,还好我们有这个检测工具,:


    image.png

切换到这个选项卡后,场景中albedo超出范围的会显示为红色:


image.png
  • Metallic : 决定了物体表面接收多少环境反射光,同时也决定有多少albedo可见。如果一个物体是纯金属,albedo光就是环境反射。
    • 纯金属不反射任何光,如果你的场景完全是纯金属构成,它将一片漆黑,只能看到高光光源。
    • 一个物体的哪些部分应该表现为金属,哪些部分不是金属有时会比较难办,比如,一个被油漆或者灰尘覆盖的金属表面,应该是只有那些没有被覆盖的部分表现为金属,下图的例子中,法线贴图(决定大的凹凸)、光滑度贴图(决定表面的细节)、高光贴图(决定哪些部分反光最厉害(金属))得到了最左边的效果


      image.png
    • 上图中,Specular贴图将和Smoothness贴图将会被合成为一张图,前者应该占据红色通道(red chennel)而后者将占用alpha通道。这张贴图将会被挂在PBS的Metalic插槽中。共同决定物体的金属度。
      image.png
  • Normal 法线贴图:用来给物体增加大量细节,这个没什么好说的,咱们已经用了很多年了。

  • Occlusion 贴图,又名遮挡贴图、AO贴图:表现物体的凹面阴影,大家都理解是什么意思:


    具有AO贴图的物体显然真实很多

    一个问题是,既然我们已经有了烘焙和SSAO,为什么我们还需要物体自己的AO?

    • 首先,物体自身的AO往往质量更好
    • 其次,动态物体时无法参与烘焙的,而光照探针并不负责AO,所以对于场景中的动态物体,带有自己的AO是不二选择。
  • 参考图片拍摄注意事项:
    • 很多时候并不是一定要去现场拍摄实物图片,如果google就可以解决问题,那google就可以
    • 如果去现场,一定记得带着你的灰度色卡,


      Kodak R-27 灰度色卡, 18% grey,rgb(124,124,124) or #7C7C7C in sRGB color space

你可能感兴趣的:(Unity官方教程-Creating Believable Visuals通读、笔记、个人理解(5.PBS材质、标准Shader和贴图))