【threejs效果:模型炸开】以钢铁侠obj模型为例
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模型为例相关推荐
- opengl读取obj模型并绘制2.0
此2.0版本是相较于我第一篇读取的文章而言的,第一篇文章只是一个简单的读取绘制程序,只能绘制单一物体,不实用. 2.0版本采用链式方式,绘制多个物体.链式方法的好处就是能够方便的添加材质数据(本文未讲 ...
- 了解3dmax炸开功能
根据资料: Max的Poly模式之下,默认功能是不能将模型一键按元素进行拆分的.可以先将模型转成mesh. 然后进行元素级别,全选所有元素,并且在工具栏里面找到炸开功能,将数值调成180,选择对象,点 ...
- 3ds Max导出带贴图的obj模型
先找一块大理石地板的贴图 接着在3ds Max中画一个最简单的立方体,要薄一点像地板 点击菜单栏中的渲染,选择精简材质编辑器 在材质编辑器面板里随便点一个球,然后按照下图所示的1和2步骤分别点击漫反射 ...
- obj模型文件的格式
obj模型的格式 带纹理的obj模型 mtl材质文件 推荐参考库文件 tiny_obj_loader assimp 带纹理的obj模型 一般带纹理的obj模型需要有以下三个文件,分别是.obj文件,. ...
- 使用three.js导入OBJ模型,变更、修改成其他OBJ模型和模型不可见原因说明
最近的一个项目需要在HTML中对OBJ模型进行大量的变更,修改为其他模型.基于这个需求下,这里有一种解决方案. 另外在各大论坛上的相关博客基本都是那几种导入obj例子····并没有对后续操作进行说明. ...
- threejs对obj模型实现爆炸效果
效果 说明:实现模型加载完成后,对其进行爆炸分解,然后延迟还原. 思路: 1.获取到obj模型后,初始化爆炸数据保存到每个mesh的userdata上: 代码: // 初始化爆炸数据保存到每个mesh ...
- threeJs导入3D皮卡丘.obj模型,使用.jpg贴图,实现缩放旋转查看功能
先来看下最终的效果. 导入obj模型 如果仅使用Mesh几何而不加载任何外部资源,则网页应直接在文件系统中运行,只需双击HTML文件打开即可以预览.而由于3D模型是从外部加载进来的,由于浏览器的原始策 ...
- Threejs渲染obj+mtl模型源码,3D工厂模型
1,介绍 Threejs实现引入工厂模型,加载obj+mtl模型源码下载,可用于学习研究,二次开发 2,部分代码 // 创建一个场景,它将包含我们所有的元素,如物体,相机和灯光. var scene ...
- “扫雷”C语言实现(含炸开效果)
"扫雷"C语言实现(感染效果) game.h #include<stdio.h> #include<stdlib.h> #include<time.h ...
最新文章
- 重磅!深度学习知识总结和调参技巧开放下载了
- bat maven 一键打包 2.0
- 解决删除U盘时提示无法停止‘通用卷’设备的方法
- spring开发_BeanFactoryPostProcessor_容器后处理器
- CentOS 7安装Redis服务
- 在网页中JS函数自动执行常用三种方法
- 快速搞懂平面设计视觉思维的窍门
- 10分钟搞懂:亿级用户的分布式数据存储解决方案
- 基于 Kotlin 一行代码实现 android 导航栏 BottomBar
- python函数的两种嵌套方法
- vue从入门到精通之基础篇(一)语法概要
- XmlDocument类
- 父子结构查询_Java面试准备(5)之数据结构与算法——红黑树
- JAVA追加写文件方法
- ckpt转pb,batch normalzition 出现的ValueError问题
- iPad常用的目录路径
- zone在linux中的含义,linux-日常运维-firewalld的9个zone
- java怎么编写木马,实现简单木马免杀(示例代码)
- plt.xticks()
- Camera摄像头模组硬件