畢設學習筆記01-threejs導入模型-20170326

畢設的時候,剛開始找到了一個大森林場景,想要導出給threejs用,于是查了一下怎么用,以下是碰到的一些問題。

1.從unity中導出模型

unity有多款插件可以導出模型為各種格式,例如:

Scene OBJ Exporter:https://www.assetstore.unity3d.com/en/#!/content/22250

UnitySceneWebExporter:https://github.com/if1live/unity-scene-web-exporter

Three.js JSON Exporter:https://www.assetstore.unity3d.com/en/#!/content/40550

以及專門用來導出地形圖的,TerrainExporter:http://blog.csdn.net/lingbaoer1234/article/details/45307643

但是以上插件均不能導出樹或者森林,于是考慮導出單棵樹

2.成功導出單棵樹之后的任務就是在threejs中導入obj和mtl文件

2.1 OBJLoader和MTLLoader,OBJMTLLoader已經不再使用了,具體使用實例如下:

THREE.Loader.Handlers.add( /\.dds$/i, new THREE.DDSLoader() );

var mtlLoader = new THREE.MTLLoader();

mtlLoader.setPath( 'obj/male02/' );

mtlLoader.load( 'male02_dds.mtl', function( materials ) {

materials.preload();

var objLoader = new THREE.OBJLoader();

objLoader.setMaterials( materials );

objLoader.setPath( 'obj/male02/' );

objLoader.load( 'male02.obj', function ( object ) {

object.position.y = - 95;

scene.add( object );

}, onProgress, onError );

});

https://threejs.org/examples/webgl_loader_obj_mtl.html

http://www.linhongxu.com/post/view?id=227

2.2 實際操作之后發現,材質并不能貼上,貼圖找不見了。后來打開mtl文件看了一下,發現它有一條記錄貼圖路徑的,路徑是本地的路徑。于是,將貼圖放到項目文件夾中,并將mtl中的路徑改為相對路徑,并且mtlLoader.setBaseUrl設置路徑

2.3之后發現貼圖能找到,但是效果不對勁,應該是沒有設置為透明。查看了materials的transparent確實是false,于是通過如下方法設置透明

object.traverse(function(child)

{

if(childinstanceofTHREE.Mesh)

{

child.material.transparent=true;

}

});

3.有用的網站:https://threejs.org/editor/,https://read.douban.com/reader/ebook/7412854/

更新:

使用ThreeExporter導出整個場景后,可以直接導入Threejs中,使用var loader=new THREE.ObjectLoader()創建loader,其他類似。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容