1. 首先我們要在官網: https://threejs.org/ 下載我們three.js壓縮包,并將其中的build文件夾下的three.js通過script標簽對的src屬性導入到我們的頁面中
2. 創(chuàng)建three.js核心對象
Scene(場景)
Camera(相機)
Light(光源)
Mesh(模型)
Renderer(渲染器)
最后一步就是渲染顯示在我們的頁面上了renderer.render(scene,camera)
3. OBJ模型的導入
<script type="text/javascript" src="js/OBJLoader.js"></script> <script type="text/javascript" src="js/MTLLoader.js"></script>
4. .JS模型的導入
首先我們需要將.OBJ模型的文件轉換成.JS文件的模型
.obj格式轉.js格式使用的是threejs.org官方提供的一個convert_obj_three.py的工具,這個工具的使用需要安裝python環(huán)境
轉換過程:
將convert_obj_three.py和要轉換的.obj文件和.mtl文件放在同一個目錄下
打開cmd,切換到對應的目錄下
python convert_obj_three.py -i infile.obj -o outfile.js [-t ascii|binary]
可以得到兩種編碼方式的.js文件(二進制binary和ascii)
出現的問題,轉換格式的問題:
打開.obj文件,
將mtllib關鍵字后面改成 .mtl文件相對于.obj文件的路徑
將文件中的這些?改成字母,亂碼
.mtl文件中的newmtl 關聯(lián)到.obj文件中
這是.obj文件中的
5. 準備導入
Ascii
Binary
需要導入
<script src="js/BinaryLoader.js"></script>
PS:three.js 外部模型加載json
用blender做模型可以直接導出json文件(導出插件可以從three.js包里找到)。從網上下載模型,網上的模型很多事3ds max做的,我就用3ds max把模型格式轉換成obj,再導入blender處理好模型后導出json文件。
導出json文件時選項勾選如果選擇了SCENE可連燈光一同導出加載時需要用ObjectLoader
var loader = new THREE.ObjectLoader(); loader.load('youscene1.json',function(obj){ obj.scale.x = obj.scale.y = obj.scale.z =100; scene.add(obj); });
導出json文件時如果不勾選scene,需要頁面中添加燈光否則模型全黑,加載時用JSONLoader
var loader = new THREE.JSONLoader(); loader.load( "noscene.json",function( geometry, materials ) { materials[ 0 ].shading = THREE.FlatShading; mesh = new THREE.Mesh( geometry, new THREE.MultiMaterial( materials ) ); mesh.position.x = 0; mesh.position.y = 0; mesh.position.z = 0; mesh.scale.x = mesh.scale.y = mesh.scale.z =100; scene.add( mesh ); });
總結
以上所述是小編給大家介紹的Three.js加載外部模型的教程詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com