欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Three.js加载外部模型的教程详解

程序员文章站 2022-06-17 13:20:17
1.  首先我们要在官网: 下载我们three.js压缩包,并将其中的build文件夹下的three.js通过script标签对的src属性导入到我们的页面中...

1.  首先我们要在官网: 下载我们three.js压缩包,并将其中的build文件夹下的three.js通过script标签对的src属性导入到我们的页面中

2.  创建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>

Three.js加载外部模型的教程详解

4.  .js模型的导入

首先我们需要将.obj模型的文件转换成.js文件的模型

.obj格式转.js格式使用的是threejs.org官方提供的一个convert_obj_three.py的工具,这个工具的使用需要安装python环境

转换过程:

    将convert_obj_three.py和要转换的.obj文件和.mtl文件放在同一个目录下

Three.js加载外部模型的教程详解

打开cmd,切换到对应的目录下

python convert_obj_three.py -i infile.obj -o outfile.js [-t ascii|binary]

    可以得到两种编码方式的.js文件(二进制binary和ascii)

出现的问题,转换格式的问题:

   打开.obj文件,

Three.js加载外部模型的教程详解

将mtllib关键字后面改成 .mtl文件相对于.obj文件的路径

Three.js加载外部模型的教程详解

将文件中的这些?改成字母,乱码

Three.js加载外部模型的教程详解

.mtl文件中的newmtl 关联到.obj文件中

Three.js加载外部模型的教程详解

这是.obj文件中的

5.  准备导入

ascii

Three.js加载外部模型的教程详解

binary

需要导入

<script src="js/binaryloader.js"></script>

Three.js加载外部模型的教程详解

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加载外部模型的教程详解,希望对大家有所帮助