GLTF
什么是 glTF?
glTF(GL Transmission Format)
是 khronos 发布的一种能高效传输和加载 3D 场景的规范,是 3D 领域中的 JPEG
格式,其功能涵盖了 FBX
、OBJ
等传统模型格式,基本支持 3D 场景中的所有特性,其插件机制也使用户可以灵活地自定义实现想要的功能。 glTF
是目前 Orillusion
推荐的首选 3D 场景传输格式,Orillusion
对 glTF
的核心功能和插件都做了很好的支持。
加载 glTF
使用 Engine3D.res.loadGltf 来加载 gltf
模型,该方法对 gltf/glb
文件做了优化处理,可以直接添加对象:
ts
let scene = new Scene3D();
// 加载 gltf 文件
let data = await Engine3D.res.loadGltf('sample.gltf');
// 添加至场景
scene.addChild(data);
插件支持
目前支持以下 glTF
插件,若 glTF
文件中包含相应插件,则会自动加载相应功能:
插件 | 功能 |
---|---|
KHRdracomesh_compression | 支持 Draco 压缩,能有效节省模型体积 |
KHRlightspunctual | 支持多光源组合,会解析成引擎的光源,详见 光照教程 |
KHRmaterialspbrSpecularGlossiness | 支持 PBR 高光-光泽度工作流 |
KHRmaterialsunlit | 支持 Unlit 材质 |
KHRmaterialsvariants | 允许渲染器存在多个材质,然后通过 setMaterial 接口进行材质切换 |
KHRmeshquantization | 支持顶点数据压缩,节省显存,如顶点数据一般都是浮点数,此插件可以保存为整型 |
KHRtexturetransform | 支持纹理的缩放位移变换 |
KHR_lights_punctual | 支持扩展灯光,包含 direction light ,point light , spot light |