1 效果如下:

2 基本原理

首先加载一个obj模型;然后遍历obj模型的所有children mesh;按一定比例改变每个子mesh的中心点位置即可;

爆炸代码:

    function modelExplode(num){// 模型世界中心var modelWorldCenter=new THREE.Vector3(0,0,0);//.addVectors(box.max,box.min).multiplyScalar(0.5);//模型中心坐标// 定义盒子var childBox=new THREE.Box3();// 遍历场景所有元素scene.traverse(function(child){// 如果元素是meshif(child.isMesh){childBox.setFromObject(child);debugger;var childCenter=new THREE.Vector3().addVectors(childBox.max,childBox.min).multiplyScalar(0.5);if(isNaN(childCenter.x))return;child.childCenter=new THREE.Vector3().subVectors(childCenter,modelWorldCenter).normalize();if(!child.isMesh || !child.childCenter) return;// 爆炸公式:更改mesh位置child.position.copy(child.childCenter).multiplyScalar(num);}});}

全部代码见:【threejs效果:模型炸开】以钢铁侠obj模型为例

【threejs效果:模型炸开】以钢铁侠obj模型为例相关推荐

  1. opengl读取obj模型并绘制2.0

    此2.0版本是相较于我第一篇读取的文章而言的,第一篇文章只是一个简单的读取绘制程序,只能绘制单一物体,不实用. 2.0版本采用链式方式,绘制多个物体.链式方法的好处就是能够方便的添加材质数据(本文未讲 ...

  2. 了解3dmax炸开功能

    根据资料: Max的Poly模式之下,默认功能是不能将模型一键按元素进行拆分的.可以先将模型转成mesh. 然后进行元素级别,全选所有元素,并且在工具栏里面找到炸开功能,将数值调成180,选择对象,点 ...

  3. 3ds Max导出带贴图的obj模型

    先找一块大理石地板的贴图 接着在3ds Max中画一个最简单的立方体,要薄一点像地板 点击菜单栏中的渲染,选择精简材质编辑器 在材质编辑器面板里随便点一个球,然后按照下图所示的1和2步骤分别点击漫反射 ...

  4. obj模型文件的格式

    obj模型的格式 带纹理的obj模型 mtl材质文件 推荐参考库文件 tiny_obj_loader assimp 带纹理的obj模型 一般带纹理的obj模型需要有以下三个文件,分别是.obj文件,. ...

  5. 使用three.js导入OBJ模型,变更、修改成其他OBJ模型和模型不可见原因说明

    最近的一个项目需要在HTML中对OBJ模型进行大量的变更,修改为其他模型.基于这个需求下,这里有一种解决方案. 另外在各大论坛上的相关博客基本都是那几种导入obj例子····并没有对后续操作进行说明. ...

  6. threejs对obj模型实现爆炸效果

    效果 说明:实现模型加载完成后,对其进行爆炸分解,然后延迟还原. 思路: 1.获取到obj模型后,初始化爆炸数据保存到每个mesh的userdata上: 代码: // 初始化爆炸数据保存到每个mesh ...

  7. threeJs导入3D皮卡丘.obj模型,使用.jpg贴图,实现缩放旋转查看功能

    先来看下最终的效果. 导入obj模型 如果仅使用Mesh几何而不加载任何外部资源,则网页应直接在文件系统中运行,只需双击HTML文件打开即可以预览.而由于3D模型是从外部加载进来的,由于浏览器的原始策 ...

  8. Threejs渲染obj+mtl模型源码,3D工厂模型

    1,介绍 Threejs实现引入工厂模型,加载obj+mtl模型源码下载,可用于学习研究,二次开发 2,部分代码 // 创建一个场景,它将包含我们所有的元素,如物体,相机和灯光. var scene ...

  9. “扫雷”C语言实现(含炸开效果)

    "扫雷"C语言实现(感染效果) game.h #include<stdio.h> #include<stdlib.h> #include<time.h ...

最新文章

  1. 重磅!深度学习知识总结和调参技巧开放下载了
  2. bat maven 一键打包 2.0
  3. 解决删除U盘时提示无法停止‘通用卷’设备的方法
  4. spring开发_BeanFactoryPostProcessor_容器后处理器
  5. CentOS 7安装Redis服务
  6. 在网页中JS函数自动执行常用三种方法
  7. 快速搞懂平面设计视觉思维的窍门
  8. 10分钟搞懂:亿级用户的分布式数据存储解决方案
  9. 基于 Kotlin 一行代码实现 android 导航栏 BottomBar
  10. python函数的两种嵌套方法
  11. vue从入门到精通之基础篇(一)语法概要
  12. XmlDocument类
  13. 父子结构查询_Java面试准备(5)之数据结构与算法——红黑树
  14. JAVA追加写文件方法
  15. ckpt转pb,batch normalzition 出现的ValueError问题
  16. iPad常用的目录路径
  17. zone在linux中的含义,linux-日常运维-firewalld的9个zone
  18. java怎么编写木马,实现简单木马免杀(示例代码)
  19. plt.xticks()
  20. Camera摄像头模组硬件

热门文章

  1. prometheus 报警规则
  2. 使用OpenStreetMap,Hot export tool,OSMNX下载地图资源
  3. pinpoint不显示mysql_pinpoint页面不显示USER | 吴老二
  4. PyAutoGUI—自动化操作工具(1)基础入门
  5. 求空间点沿平面法向量与平面交点的坐标
  6. 英特尔边缘计算技术白皮书
  7. 宁波栎社机场停车场怎么收费,栎社机场停车场收费标准
  8. LVM-HOWTO/学习笔记(五)
  9. 计算机专业考证难不难,成人自考本科计算机专业考试难不难
  10. Java新手小白入门篇 JDK安装及环境变量配置(超详细)