基于 ThreeJS 的 DTE 库使用 - 使用 loader 加载 3D 格式文件

本文是我在某中厂任职时的学习笔记,用到 DTE 库是基于 ThreeJS 实现的闭源的公司内部库,替代方案和说明可见 DTE 库的开源替代方案(ThreeJS 等)
复杂的模型通常是由专业的三维建模软件(如 Blender, 3ds Max, Maya)创建,并导出为标准格式的文件,比如 GLTF, GLB, OBJ, FBX 等。
DTE 封装了针对不同文件格式的加载器,使得可以把这些建模软件导出的东西加载到 web 前端,一听就很有意思!
[!note] 关于 GLTF、GLB 格式
- GLTF (GL Transmission Format) 被称为 “三维领域的JPEG”。它就是为了在网络上高效传输和加载3D场景和模型而生的标准。
- GLB 是 GLTF 的二进制格式,通常把所有信息(模型、贴图)都打包在一个文件里,更方便传输。在Web 3D领域,它们是首选格式。
我从 KhronosGroup/glTF-Sample-Models: glTF Sample Models 上找了一个开源的 .glb
格式的模型,这是一只可爱的小黄鸭,我们本节课就用它:
https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/master/2.0/Duck/glTF-Binary/Duck.glb
加载模型资源是一个异步操作,加载器的 load 方法通常不会立即返回模型,而是返回一个 Promise,后面 .then 回调函数接收到的参数才是模型啦。
1 | // --- 之前的代码 --- |
本课小结
-
我们理解了为什么需要加载器(Loader):用于加载外部复杂的模型文件。
-
我们知道了加载是一个异步过程,并学会了使用 Promise 的 .then() 语法来处理加载完成后的逻辑。
-
我们掌握了使用DTE的 ModelLoader 来加载 gltf/glb 格式的模型。
-
我们明白了加载回来的模型对象本质上也是一个普通的 Object3D (比如 Mesh 或 Group),可以对它进行移动、旋转、缩放,甚至修改材质。
- 标题: 基于 ThreeJS 的 DTE 库使用 - 使用 loader 加载 3D 格式文件
- 作者: 三葉Leaves
- 创建于 : 2025-07-31 00:00:00
- 更新于 : 2025-08-13 16:31:27
- 链接: https://blog.oksanye.com/f015a4c68852/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论