W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
目前,3D模型的格式有成千上萬種可供選擇,但每一種格式都具有不同的目的、用途以及復(fù)雜性。 雖然 three.js已經(jīng)提供了多種導(dǎo)入工具, 但是選擇正確的文件格式以及工作流程將可以節(jié)省很多時(shí)間,以及避免遭受很多挫折。某些格式難以使用,或者實(shí)時(shí)體驗(yàn)效率低下,或者目前尚未得到完全支持。
對(duì)大多數(shù)用戶,本指南向你推薦了一個(gè)工作流程,并向你提供了一些當(dāng)沒有達(dá)到預(yù)期效果時(shí)的建議。
如果你是第一次運(yùn)行一個(gè)本地服務(wù)器,可以先閱讀如何在本地運(yùn)行Three.js。 正確地托管文件,可以避免很多查看3D模型時(shí)的常見錯(cuò)誤。
如果有可能的話,我們推薦使用glTF(gl傳輸格式)。.GLB和.GLTF是這種格式的這兩種不同版本, 都可以被很好地支持。由于glTF這種格式是專注于在程序運(yùn)行時(shí)呈現(xiàn)三維物體的,所以它的傳輸效率非常高,且加載速度非??臁?功能方面則包括了網(wǎng)格、材質(zhì)、紋理、皮膚、骨骼、變形目標(biāo)、動(dòng)畫、燈光和攝像機(jī)。
公共領(lǐng)域的glTF文件可以在網(wǎng)上找到,例如 Sketchfab,或者很多工具包含了glTF的導(dǎo)出功能:
倘若你所喜歡的工具不支持glTF格式,請(qǐng)考慮向該工具的作者請(qǐng)求glTF導(dǎo)出功能, 或者在the glTF roadmap thread貼出你的想法。
當(dāng)glTF不可用的時(shí)候,諸如FBX、OBJ或者COLLADA等等其它廣受歡迎的格式在Three.js中也是可以使用、并且定期維護(hù)的。
在three.js中只會(huì)內(nèi)置一部分加載器(例如:ObjectLoader) —— 其它的需要在你的應(yīng)用中單獨(dú)引入。
import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js';
一旦你引入了一個(gè)加載器,你就已經(jīng)準(zhǔn)備好為場景添加模型了。不同加載器之間可能具有不同的語法 —— 當(dāng)使用其它格式的時(shí)候請(qǐng)參閱該格式加載器的示例以及文檔。對(duì)于glTF,使用全局script的用法類似:
const loader = new GLTFLoader();
loader.load( 'path/to/model.glb', function ( gltf ) {
scene.add( gltf.scene );
}, undefined, function ( error ) {
console.error( error );
} );
請(qǐng)參閱GLTFLoader documentation來深入了解詳細(xì)信息。
你花了幾個(gè)小時(shí)親手建了一個(gè)堪稱杰作的模型,現(xiàn)在你把它給導(dǎo)入到網(wǎng)頁中—— 哦,天吶~??它導(dǎo)入以后完全失真了、材質(zhì)貼圖丟了、或者說整個(gè)模型完全丟失了!接下來我們來按照下面的步驟排除故障:
如果你已經(jīng)嘗試經(jīng)歷了以上故障排除的過程,但是你的模型仍然無法工作,尋求正確的方法來獲得幫助將使您更快地獲得解決方案。 您可以將您的問題發(fā)布到three.js forum, 同時(shí),盡可能將你的模型(或者一個(gè)簡單的、具有相同問題的模型)包含在你能夠使用的任何格式中,為其他人提供足夠的信息,以便快速重現(xiàn)這個(gè)問題 —— 最好是一個(gè)能夠現(xiàn)場演示的Demo。
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)系方式:
更多建議: