【译】glTF教程:高级材质(十四)
2019-02-20
一种先进的材料
上一节中的示例:简单纹理示例展示了使用纹理定义“基本颜色”的材料。但是除了基本颜色,材质还有其他属性可以通过纹理来定义。这些特性已经在材质小节中进行了总结:
- 基色,-“金属”值,
- 表面的“粗糙度”,
- 发射特性,
- 一个遮挡纹理,和
- 法线贴图*
这些属性的效果不能用简单的纹理来正确地演示。因此,这里将使用一个官方的Khronos PBR示例模型,即WaterBottle模型来显示它们。图14a显示了该模型中涉及的纹理的概述,以及最终渲染的对象:
解释基于物理的呈现的实现超出了本教程的范围。官方的Khronos WebGL PBR存储库包含一个基于WebGL的PBR渲染器的参考实现,并提供了实现提示和背景信息。下面的图片主要是展示不同材质属性纹理在不同光照条件下的效果。
图14b显示了粗糙度纹理的效果:与瓶盖粗糙的表面结构相比,瓶盖的主体部分粗糙度较低,使得瓶盖显得有光泽。
图14c突出了金属纹理的效果:瓶子反射来自周围环境地图的光线。
图像14d显示了纹理的发射部分:无论环境设置是暗环境,发射纹理中包含的文本都清晰可见。
图像14e显示了定义法线贴图的瓶盖部分:文本似乎是压印到瓶盖上的。这使得在表面上建模更精细的几何细节成为可能,即使模型本身只有非常粗糙的几何分辨率。
总之,这些纹理和地图允许建模的现实世界的材料范围很广。多亏了通用的底层PBR模型——即metal -roughness模型——不同的渲染器实现可以一致地呈现对象。