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

 更新时间:2017年11月10日 10:58:13   作者:CQ-engineer  
这篇文章主要介绍了Three.js外部模型加载的教程详解,在文章给大家补充介绍了three.js 外部模型加载json的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下

1.  首先我们要在官网: https://threejs.org/ 下载我们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>

4.  .JS模型的导入

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

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

转换过程:

    将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 关联到.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加载外部模型的教程详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • JS异步任务的并行、串行及二者结合用法

    JS异步任务的并行、串行及二者结合用法

    让多个异步任务按照我们的想法执行,是开发中常见的需求,今天我们就来捋一下,如何让多个异步任务并行,串行,以及并行串行相结合,感兴趣的朋友跟随小编一起看看吧
    2023-10-10
  • JavaScript实现简单的轮播图效果

    JavaScript实现简单的轮播图效果

    这篇文章主要为大家详细介绍了JavaScript实现简单的轮播图效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • JavaScript中按位“异或”运算符使用介绍

    JavaScript中按位“异或”运算符使用介绍

    按位“异或”运算符 (^)是对两个表达式执行按位异或,下面为大家介绍下其具体的使用方法
    2014-03-03
  • 微信小程序实现经典window扫雷游戏

    微信小程序实现经典window扫雷游戏

    这篇文章主要为大家详细介绍了微信小程序实现经典window扫雷游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-09-09
  • javascript中Function类型详解

    javascript中Function类型详解

    这篇文章主要介绍了javascript中Function类型详解的相关资料,需要的朋友可以参考下
    2015-04-04
  • js Dialog 去掉右上角的X关闭功能

    js Dialog 去掉右上角的X关闭功能

    用到 dialog弹出框时,不想要右上角的X 关闭功能,只是做个提示信息显示,下面是具体的去掉方法,大家可以参考下
    2014-04-04
  • 使用JavaScript平移和缩放图像的示例代码

    使用JavaScript平移和缩放图像的示例代码

    平移和缩放是查看图像时常用的功能,我们可以放大图像以查看更多细节,进行图像编辑,Dynamsoft Document Viewer是一个用于此目的的SDK,它为文档图像提供了一组查看器,在本文中,我们将演示如何使用它来平移和缩放图像,需要的朋友可以参考下
    2024-08-08
  • 简单实现js倒计时功能

    简单实现js倒计时功能

    这篇文章主要为大家详细介绍了js倒计时效果的实现代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • javascript 复杂的嵌套环境中输出单引号和双引号

    javascript 复杂的嵌套环境中输出单引号和双引号

    如果简单的嵌套一般都是外面用双引号,则里面用单引号,反之亦同,如果特别负责的嵌套大家看下如下的方法。
    2009-05-05
  • JS实现监控微信小程序的原理

    JS实现监控微信小程序的原理

    这篇文章主要介绍了JS实现监控微信小程序的原理,本文通过实例代码相结合的形式给大家介绍的非常详细,需要的朋友可以参考下
    2018-06-06

最新评论