本文介绍 three.js 中加载常见 3D 模型文件的四种主要方法,包括 OBJ、GLTF、FBX 和 Collada 格式。通过具体代码示例展示如何使用对应的 Loader 类实例化加载器,并处理加载完成、进度监控及错误回调,帮助开发者快速集成模型到场景中。
在 three.js 中,加载 3D 模型有多种实现方式。以下列举几种主流的加载器及其使用场景。
1. OBJLoader 模型加载器
import { OBJLoader } from 'three/examples/jsm/loaders/OBJLoader.js';
// 创建一个 OBJLoader 的实例
const loader = new OBJLoader();
// 载入模型文件,参数url是模型文件的路径,此处以 "example.obj" 为例
loader.load(
'example.obj',
// 加载完成后的回调函数
function (obj) {
// 当模型加载完成后会调用该函数
// 将模型添加到场景中
scene.add(obj);
},
// 正在加载模型时的回调函数
function (xhr) {
// 进度条代码,可以在此编写代码,传入 xhr.loaded 和 xhr.total,计算出加载进度
},
// 加载出错的回调函数
function (err) {
console.error('An error happened.');
}
);2. GLTFLoader 模型加载器
import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js';
// 创建一个 GLTFLoader 的实例
const loader = new GLTFLoader();
// 载入模型文件,参数url是模型文件的路径,此处以 "example.gltf" 为例
loader.load(
'example.gltf',
// 加载完成后的回调函数
function (gltf) {
// 当模型加载完成后会调用该函数
// 将模型添加到场景中
scene.add(gltf.scene);
},
// 正在加载模型时的回调函数
function (xhr) {
// 进度条代码,可以在此编写代码,传入 xhr.loaded 和 xhr.total,计算出加载进度
},
// 加载出错的回调函数
function (err) {
console.error('An error happened.');
}
);3. FBXLoader 模型加载器
import { FBXLoader } from 'three/examples/jsm/loaders/FBXLoader.js';
// 创建一个 FBXLoader 的实例
const loader = new FBXLoader();
// 载入模型文件,参数url是模型文件的路径,此处以 "example.fbx" 为例
loader.load(
'example.fbx',
// 加载完成后的回调函数
function (object) {
// 当模型加载完成后会调用该函数
// 将模型添加到场景中
scene.add(object);
},
// 正在加载模型时的回调函数
function (xhr) {
// 进度条代码,可以在此编写代码,传入 xhr.loaded 和 xhr.total,计算出加载进度
},
// 加载出错的回调函数
function (err) {
console.error('An error happened.');
}
);4. ColladaLoader 模型加载器
import { ColladaLoader } from 'three/examples/jsm/loaders/ColladaLoader.js';
// 创建一个 ColladaLoader 的实例
const loader = new ColladaLoader();
// 载入模型文件,参数url是模型文件的路径,此处以 "example.dae" 为例
loader.load(
'example.dae',
// 加载完成后的回调函数
function (collada) {
// 当模型加载完成后会调用该函数
// 将模型添加到场景中
scene.add(collada.scene);
},
// 正在加载模型时的回调函数
function (xhr) {
// 进度条代码,可以在此编写代码,传入 xhr.loaded 和 xhr.total,计算出加载进度
},
// 加载出错的回调函数
function (err) {
console.error('An error happened.');
}
);上述内容涵盖了常见三维模型格式对应的加载器及其基本用法。开发者可根据实际模型文件格式,选择匹配的加载器进行加载操作。
总结
关于 three.js 加载常用类型 3D 模型的方法介绍至此结束。如需了解更多 three.js 相关技术内容,建议查阅本站历史文章或继续阅读后续教程,感谢支持。