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


Posted in Javascript onNovember 10, 2017

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>

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

Javascript 相关文章推荐
让FireFox支持innerText的实现代码
Dec 01 Javascript
用原生JavaScript实现jQuery的$.getJSON的解决方法
May 03 Javascript
Javascript判断文件是否存在(客户端/服务器端)
Sep 16 Javascript
JavaScript编程中window的location与history对象详解
Oct 26 Javascript
AngularJS过滤器详解及示例代码
Aug 16 Javascript
基于JavaScript实现飘落星星特效
Aug 10 Javascript
element ui 对话框el-dialog关闭事件详解
Feb 26 Javascript
js正则表达式校验指定字符串的方法
Jul 23 Javascript
详解Webpack多环境代码打包的方法
Aug 03 Javascript
jQuery 同时获取多个标签的指定内容并储存为数组
Nov 20 jQuery
Vue插件从封装到发布的完整步骤记录
Feb 28 Javascript
jQuery zTree树插件的使用教程
Aug 16 jQuery
vue2导航根据路由传值,而改变导航内容的实例
Nov 10 #Javascript
three.js加载obj模型的实例代码
Nov 10 #Javascript
vue router-link传参以及参数的使用实例
Nov 10 #Javascript
vue-router2.0 组件之间传参及获取动态参数的方法
Nov 10 #Javascript
js+html获取系统当前时间
Nov 10 #Javascript
vue2 router 动态传参,多个参数的实例
Nov 10 #Javascript
node.js基于fs模块对系统文件及目录进行读写操作的方法详解
Nov 10 #Javascript
You might like
长波有什么东西
2021/03/01 无线电
php桌面中心(三) 修改数据库
2007/03/11 PHP
php二维数组排序详解
2013/11/06 PHP
Paypal实现循环扣款(订阅)功能
2017/03/23 PHP
PHP实现权限管理功能示例
2017/09/22 PHP
laravel5.1 ajax post 传值_token示例
2019/10/24 PHP
PhpStorm2020.1 安装 debug - Postman 调用的详细教程
2020/08/17 PHP
ECMAScript 5中的属性描述符详解
2015/03/02 Javascript
node-webkit打包成exe文件被360误报木马的解决方法
2015/03/11 Javascript
jQuery Form 表单提交插件之formSerialize,fieldSerialize,fieldValue,resetForm,clearForm,clearFields的应用
2016/01/23 Javascript
jQuery+css实现非常漂亮的水平导航菜单效果
2016/07/27 Javascript
jquery checkbox的相关操作总结
2016/10/17 Javascript
详解js的事件处理函数和动态创建html标记方法
2016/12/16 Javascript
微信小程序 仿猫眼实现实例代码
2017/03/14 Javascript
jQuery Jsonp跨域模拟搜索引擎
2017/06/17 jQuery
js实现图片旋转 js滚动鼠标中间对图片放大缩小
2017/07/05 Javascript
es7学习教程之Decorators(修饰器)详解
2017/07/21 Javascript
Angularjs中的$apply及优化使用详解
2018/07/02 Javascript
JavaScript实现的文本框placeholder提示文字功能示例
2018/07/25 Javascript
vue组件之间的数据传递方法详解
2019/04/19 Javascript
jquery将json转为数据字典的实例代码
2019/10/11 jQuery
vue组件系列之TagsInput详解
2020/05/14 Javascript
深入浅析Python字符编码
2015/11/12 Python
numpy求平均值的维度设定的例子
2019/08/24 Python
python学习之使用Matplotlib画实时的动态折线图的示例代码
2021/02/25 Python
Booking.com美国:全球酒店预订网站
2017/04/18 全球购物
一道输出判断型Java面试题
2014/10/01 面试题
应届生会计求职信
2013/11/11 职场文书
毕业生个人的求职信范文
2013/12/03 职场文书
应聘编辑职位自荐信范文
2014/01/05 职场文书
人力资源专员岗位职责
2014/01/30 职场文书
办公室文员岗位职责范本
2014/06/12 职场文书
2014年文员工作总结
2014/11/18 职场文书
五年级小学生评语
2014/12/26 职场文书
小学生2015教师节演讲稿
2015/03/19 职场文书
企业计划生育责任书
2015/05/09 职场文书