glTF/glb格式模型-教程
材料
介绍
glTF的目的是为3D资产定义传输格式。如前几节所示,这包括关于场景结构和场景中出现的几何对象的信息。但 glTF 资产也可以包含关于对象外观的信息;也就是说,这些对象应该如何被渲染在屏幕上。
材料性质有多种可能的表示方式,着色模型描述了这些性质的处理方式。简单的着色模型,如 Phong 或 Blinn-Phong,直接由常见的图形 API 支持,如 OpenGL 或 WebGL。这些着色模型建立在一套基本的材料属性之上。例如,材料性质涉及漫反射光的颜色(通常以纹理形式)、镜面反射光的颜色以及光泽参数的信息。许多文件格式恰好包含这些参数。例如,Wavefront OBJ 文件与包含这些纹理和颜色信息的文件结合使用。渲染器可以读取这些信息并相应渲染对象。但为了描述更真实的材质,需要更复杂的阴影和材质模型。MTL
基于物理的渲染(PBR)
为了让渲染器在不同光照条件下显示具有真实外观的物体,着色模型必须考虑物体表面的物理属性。这些物理材料性质有不同的表示方式。其中一种常用模型是金属粗糙度模型。这里,关于物体表面的信息用三个主要参数编码:
- 底色,即物体表面的“主色”。
- 金属价值。这是一个参数,描述材料的反射行为与金属的相似程度。
- 粗糙度值,表示表面的粗糙度,影响光的散射。
金属粗糙度模型是glTF中使用的表示方式。其他材质表示,如镜面光泽模型,则通过扩展得到支持。
不同金属值和粗糙度值的影响如图所示:
图片10a:具有不同金属性和粗糙度值的球体。
底色、金属感和粗糙度属性可以作为单一值给出,然后应用到整个物体上。为了为物体表面的不同部分赋予不同的材料属性,这些属性也可以以纹理的形式给出。这使得能够以逼真的外观建模各种真实材料。
根据阴影模型的不同,还可以对物体表面施加额外效果。这些通常以纹理和缩放因子的组合形式给出:
- 发射纹理描述物体表面发出特定颜色光的部分。
- 遮挡纹理可用于模拟物体相互自阴影的效果。
- 法线贴图是一种纹理,用于调制表面法线,使得能够模拟更细微的几何细节,而无需牺牲更高的网格分辨率。
glTF支持所有这些附加属性,并为省略这些属性时定义了合理的默认值。


浙公网安备 33010602011771号