加载3D模型

首先要引入ColladaLoader加载器,Collada是一个3D模型交换方案,即不同的3D模型可以通过Collada进行相互转换,言外之意,threejs可以使用Collada将3D模型的数据转换成自己支持的格式,从而在浏览器上渲染出来。引入ColladaLoader如下:

<script src="http://threejs.outsidelook.cn/r89/source/examples/js/loaders/ColladaLoader.js"></script>

然后使用ColladaLoader的Load方法加载模型,然后使用onLoad回调函数在模型加载完成之后将模型添加到场景中。onLoad函数会接受到一个包含了所加载的资源的对象,这个对象的结构如下:


对于这个对象中具体包含了哪些东西,暂时不用全部弄明白。但是我们看到了上面有一个scene,在threejs中,scene是场景,是包含所有可视部件的容器,我们要做的就是(1)从这个scene中找出我们需要操控的模型对象,保存起来(2)将模型的场景添加到程序的场景中去。

下面是整个加载模型的函数:

function load3DModel(){/1、collada是一种基于XML的3D模型交互方案,简单来说,就是一种3D模型可以通过collada转换成另一种3D模型,从而,各种3D模型都可以通过collada转换成web支持的3D模型。2、。dae是一个钟3D模型的格式3、加载时注意浏览器同源策略的限制/var loader = new THREE.ColladaLoader();loader.load( "./model/avatar.dae", function ( collada ) {//找到模型中需要的对象。将相机看向这个对象是为了让这个对象显示在屏幕中心collada.scene.traverse( function ( child ) {if ( child instanceof THREE.SkinnedMesh ) {modelObj = child;camera.lookAt( child.position );}} );//将模型的场景加入到整体的场景modelObj.material.opacity = 0.8;scene.add( collada.scene );//显示出模型的骨骼的代码,不需要可删去var helper = new THREE.SkeletonHelper( modelObj );helper.material.linewidth = 3;scene.add( helper );} );
}

需要注意的是,加载是异步的,所以,要使用render循环来渲染,可参考下面的例子。

整个例子请看:【加载3D模型例子】,整个例子的效果:


持续更新

threejs加载3D模型例子相关推荐

  1. threejs加载3D模型

    加载3D模型 首先要引入ColladaLoader加载器,Collada是一个3D模型交换方案,即不同的3D模型可以通过Collada进行相互转换,言外之意,threejs可以使用Collada将3D ...

  2. Cesium.js 加载3D模型

    一.Cesuimjs介绍 Cesiunjs是一套GIS行业中进行地图渲染的js库,该库使用的WebGL进行地图渲染.并且结合HTML5进行相应,从而实现3D中渲染地图.本篇文章则介绍如何将后缀名为ma ...

  3. 如何加载3D模型(odj文件和mtl文件)

    模型的加载 因为,在最近的项目模块中需要加载部分"模型".在加载模型在方面我从来的没有接触过,是通过同事告诉,慢慢摸索才完成的,其中是我遇到的问题和总结的一些的方法. 使用VUE加 ...

  4. Labview加载3D模型(.wrl)出现内存不足的解决方法

    Labview加载3D模型(.wrl)出现内存不足的解决方法 最近,由于项目的要求,需要做一个上位机,用于实时采集装备的状态信息.最终方案采用Labview数据流的方式构建应用程序.在加载wrl3D模 ...

  5. Unity动态加载3D模型

    Unity动态加载3D模型 在Unity中创建游戏对象的方法有 3 种: 第一种是将物体模型资源由 Project 视图直接拖曳到 Hierarchy 面板中: 第二种是在 Unity 3D 菜单 G ...

  6. qt opengl 加载3d模型(obj格式)

    和一般c++程序加载3d模型一样,解读出数据内容,再用一个常规的着色程序就可以了. 我实现的效果如下,采用的免费模型 实现思路和前面的略有不同,就是把自己生成顶点.纹理.法线的过程变成从文件读取了. ...

  7. Qt和OpenGL:使用Open Asset Import Library(ASSIMP)加载3D模型

    Qt和OpenGL:使用Open Asset Import Library(ASSIMP)加载3D模型 翻译自:https://www.ics.com/blog/qt-and-opengl-loadi ...

  8. Qt Quick 3D系列(一):加载3d模型

    如果我们想在QML中使用3D且你之前没有三维程序开发的基础,使用Qt Quick 3D是个不错的选择,下面我介绍如何使用Qt Quick 3D加载3d模型.注意:Qt Quick 3D从Qt 5.15 ...

  9. PHP加载3D模型【WebGL】

    这是另一篇关于如何使用 PHP加载 3D 模型的文章. 在这里,我使用 Laravel 作为后端及其存储. 我在前端使用 Three.Js 库来渲染和显示 3D 模型. 我将向您展示如何上传 3D 模 ...

最新文章

  1. java 常量字符串过长_90%的同学都没搞清楚的 Java 字符串常量池问题(图文并茂)
  2. 针对大表 设计高效的存储过程【原理篇】 附最差性能sql语句进化过程客串
  3. SAP Data Intelligence API如何获得Access Token - no authentication means found
  4. css中会计算的属性,2017年12月聚合文章--calc() ---一个会计算的css属性 | 码友网
  5. 牛!阿里云位居中国金融云市场第一
  6. 56py无锡官方网站2013最新
  7. html 刷新div_HTML悬浮星星:
  8. 关于本博客的feed订阅
  9. python--迭代器与生成器
  10. C语言 计算字符串长度的几种方法
  11. c报错pointer being freed was not allocated
  12. Windows触控手势
  13. 采用Iframe解决微信图片防盗链‘此图片来自微信公众平台未经允许不可引用’问题
  14. 「产品速递」消防应急照明和疏散指示系统
  15. 第四章 网络层(TCP/IP称网际层)
  16. oracle查看视图定义语句_oracle视图详解
  17. HR警告:应届生求职简历中的实习经历千万别水
  18. 贝尔实验室的百年沉浮
  19. (深入.Net平台和C#编程)第五章.体检套餐管理项目.20170408
  20. Django文件部署(1.准备工作)(全)

热门文章

  1. jqgrid删除某一列(隐藏)
  2. mpvue 从零开始 女友的收纳盒 6 mpvue-entry入口管理
  3. HAS_NO_PRIVILEGE解决方案
  4. 新疆缺少计算机网络技术吗,新疆阿克苏职业技术学院的计算机网络技术专业好不?...
  5. 科学计算机java算法实现,(Java)科学型计算器开发及实现.doc
  6. .Net System.Object类介绍
  7. java windows so文件_windows下编译使用NDK,调用SO文件 | 学步园
  8. 2021辽宁大洼高中高考成绩查询,2021大洼高中最后一跑——励志高考,逆袭人生...
  9. 【C++学习详细教程目录】
  10. ElasticSearch初体验之使用Java进行最基本的增删改查