three.js載入常用類型3D模型的幾種方法
three.js 載入 3D 模型的方法有很多種。以下是其中的一些:
1. OBJLoader模型加載器
import { OBJLoader } from 'three/examples/jsm/loaders/OBJLoader.js';
// 創(chuàng)建一個 OBJLoader 的實例
const loader = new OBJLoader();
// 載入模型文件,參數(shù)url是模型文件的路徑,此處以 "example.obj" 為例
loader.load(
'example.obj',
// 加載完成后的回調(diào)函數(shù)
function (obj) {
// 當(dāng)模型加載完成后會調(diào)用該函數(shù)
// 將模型添加到場景中
scene.add(obj);
},
// 正在加載模型時的回調(diào)函數(shù)
function (xhr) {
// 進(jìn)度條代碼,可以在此編寫代碼,傳入 xhr.loaded 和 xhr.total,計算出加載進(jìn)度
},
// 加載出錯的回調(diào)函數(shù)
function (err) {
console.error('An error happened.');
}
);2. GLTFLoader模型加載器
import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js';
// 創(chuàng)建一個 GLTFLoader 的實例
const loader = new GLTFLoader();
// 載入模型文件,參數(shù)url是模型文件的路徑,此處以 "example.gltf" 為例
loader.load(
'example.gltf',
// 加載完成后的回調(diào)函數(shù)
function (gltf) {
// 當(dāng)模型加載完成后會調(diào)用該函數(shù)
// 將模型添加到場景中
scene.add(gltf.scene);
},
// 正在加載模型時的回調(diào)函數(shù)
function (xhr) {
// 進(jìn)度條代碼,可以在此編寫代碼,傳入 xhr.loaded 和 xhr.total,計算出加載進(jìn)度
},
// 加載出錯的回調(diào)函數(shù)
function (err) {
console.error('An error happened.');
}
);3. FBXLoader模型加載器
import { FBXLoader } from 'three/examples/jsm/loaders/FBXLoader.js';
// 創(chuàng)建一個 FBXLoader 的實例
const loader = new FBXLoader();
// 載入模型文件,參數(shù)url是模型文件的路徑,此處以 "example.fbx" 為例
loader.load(
'example.fbx',
// 加載完成后的回調(diào)函數(shù)
function (object) {
// 當(dāng)模型加載完成后會調(diào)用該函數(shù)
// 將模型添加到場景中
scene.add(object);
},
// 正在加載模型時的回調(diào)函數(shù)
function (xhr) {
// 進(jìn)度條代碼,可以在此編寫代碼,傳入 xhr.loaded 和 xhr.total,計算出加載進(jìn)度
},
// 加載出錯的回調(diào)函數(shù)
function (err) {
console.error('An error happened.');
}
);4. ColladaLoader模型加載器
import { ColladaLoader } from 'three/examples/jsm/loaders/ColladaLoader.js';
// 創(chuàng)建一個 ColladaLoader 的實例
const loader = new ColladaLoader();
// 載入模型文件,參數(shù)url是模型文件的路徑,此處以 "example.dae" 為例
loader.load(
'example.dae',
// 加載完成后的回調(diào)函數(shù)
function (collada) {
// 當(dāng)模型加載完成后會調(diào)用該函數(shù)
// 將模型添加到場景中
scene.add(collada.scene);
},
// 正在加載模型時的回調(diào)函數(shù)
function (xhr) {
// 進(jìn)度條代碼,可以在此編寫代碼,傳入 xhr.loaded 和 xhr.total,計算出加載進(jìn)度
},
// 加載出錯的回調(diào)函數(shù)
function (err) {
console.error('An error happened.');
}
);以上是幾種常用類型的三維模型的加載器及其使用方法,可以根據(jù)需要使用相應(yīng)的模型加載器來加載模型。
總結(jié)
到此這篇關(guān)于three.js載入常用類型3D模型的幾種方法的文章就介紹到這了,更多相關(guān)three.js載入3D模型內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用js判斷TextBox控件值改變?nèi)缓蟪霭l(fā)事件
這篇文章主要介紹了使用js判斷TextBox控件值改變?nèi)缓蟪霭l(fā)事件。需要的朋友可以過來參考下,希望對大家有所幫助2014-03-03
JavaScript中實現(xiàn)PHP的打亂數(shù)組函數(shù)shuffle實例
這篇文章主要介紹了JavaScript中實現(xiàn)PHP的打亂數(shù)組函數(shù)shuffle實例,本文用2種方法實現(xiàn)了類似PHP的打亂數(shù)組函數(shù)shuffle函數(shù),需要的朋友可以參考下2014-10-10
javascript中的undefined 與 null 的區(qū)別 補(bǔ)充篇
在Javascript中有兩個值用來代表類似空值的概念,undefined和null,這兩個很容易被混淆,他們表示的是兩個不同的概念。2010-03-03
淺析JavaScript的幾種Math函數(shù),random(),ceil(),round(),floor()
本文主要對JavaScript的幾種Math函數(shù),random(),ceil(),round(),floor()的作用進(jìn)行簡要解析,具有很好的參考價值,需要的朋友一起來看下吧2016-12-12
javascript 二維數(shù)組的實現(xiàn)與應(yīng)用
javascript沒有二維數(shù)組.所有自定義了一個數(shù)組類,下面是實例代碼,需要的朋友可以參考下。2010-03-03

