W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
用 Draco 庫壓縮的幾何加載器。
Draco 是一個(gè)用于壓縮和解壓縮 3D 網(wǎng)格和點(diǎn)云的開源庫。壓縮后的幾何體可以顯著變小,但代價(jià)是客戶端設(shè)備上的解碼時(shí)間會(huì)增加。
獨(dú)立的 Draco 文件具有 .drc 擴(kuò)展名,并包含頂點(diǎn)位置、法線、顏色和其他屬性。 Draco 文件不包含材質(zhì)、紋理、動(dòng)畫或節(jié)點(diǎn)層次結(jié)構(gòu)——要使用這些功能,請(qǐng)將 Draco 幾何體嵌入到 glTF 文件中。可以使用 glTF-Pipeline 將普通的 glTF 文件轉(zhuǎn)換為 Draco 壓縮的 glTF 文件。將 Draco 與 glTF 一起使用時(shí),GLTFLoader 將在內(nèi)部使用 DRACOLoader 實(shí)例。
// Instantiate a loader
const loader = new DRACOLoader();
// Specify path to a folder containing WASM/JS decoding libraries.
loader.setDecoderPath( '/examples/jsm/libs/draco/' );
// Optional: Pre-fetch Draco WASM/JS module.
loader.preload();
// Load a Draco geometry
loader.load(
// resource URL
'model.drc',
// called when the resource is loaded
function ( geometry ) {
const material = new THREE.MeshStandardMaterial( { color: 0x606060 } );
const mesh = new THREE.Mesh( geometry, material );
scene.add( mesh );
},
// called as loading progresses
function ( xhr ) {
console.log( ( xhr.loaded / xhr.total * 100 ) + '% loaded' );
},
// called when loading has errors
function ( error ) {
console.log( 'An error happened' );
}
);
瀏覽器兼容性
DRACOLoader 依賴 ES6 Promises,IE11 不支持。要在 IE11 中使用加載程序,您必須包含一個(gè)提供 Promise 替換的 polyfill。 DRACOLoader 將根據(jù)瀏覽器功能自動(dòng)使用 JS 或 WASM 解碼庫。
manager — 供加載器使用的 loadingManager。默認(rèn)值為 THREE.DefaultLoadingManager。
創(chuàng)建一個(gè)新的 DRACOLoader。
請(qǐng)參閱基本 Loader 類以了解公共屬性。
常用方法見 Loader 基類。
url — 包含 .drc 文件的路徑/URL 的字符串。
onLoad — 加載成功完成后要調(diào)用的函數(shù)。
onProgress — (可選)在加載過程中調(diào)用的函數(shù)。參數(shù)將是 XMLHttpRequest 實(shí)例,它包含 .total 和 .loaded 字節(jié)。
onError — (可選)加載期間發(fā)生錯(cuò)誤時(shí)調(diào)用的函數(shù)。該函數(shù)接收錯(cuò)誤作為參數(shù)。
從 url 開始加載并使用解壓縮的幾何體調(diào)用 onLoad 函數(shù)。
value — 包含 JS 和 WASM 解碼器庫的文件夾路徑。
config.type - (可選)“js”或“wasm”。
為解碼器庫提供配置。解碼開始后無法更改配置。
workerLimit - 要分配的最大工人數(shù)。默認(rèn)值為 4。
設(shè)置解碼期間要使用的 Web Worker 的最大數(shù)量。如果工作人員還負(fù)責(zé)應(yīng)用程序中的其他任務(wù),則下限可能更可取。
請(qǐng)求解碼器庫(如果尚未加載)。
處理解碼器資源并釋放內(nèi)存。之后無法重新加載解碼器。
examples/jsm/loaders/DRACOLoader.js
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: