three.js 加载常用 3D 模型格式的方法与代码示例

作者:灵犀时间:2026-10-31 13:09:57浏览:105

本文介绍 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 相关技术内容,建议查阅本站历史文章或继续阅读后续教程,感谢支持。

作者最新文章