美文网首页
毕设学习笔记01-threejs导入模型-20170326

毕设学习笔记01-threejs导入模型-20170326

作者: 茂茂0311 | 来源:发表于2017-03-26 06:04 被阅读0次

    毕设的时候,刚开始找到了一个大森林场景,想要导出给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,其他类似。

    相关文章

      网友评论

          本文标题:毕设学习笔记01-threejs导入模型-20170326

          本文链接:https://www.haomeiwen.com/subject/kmmhottx.html