2019独角兽企业重金招聘Python工程师标准>>>

cesium中支持载入3D模型,不过只支持gltf格式。gltf是khronos组织(起草OpenGL标准的那家)定义的一种交换格式,用于互联网或移动设备上展现3d内容,充分支持opengl,webgl,opengles图形加速标准。

gltf目前可以由collada格式转换而来,官网上也提供了一个转换工具(https://www.khronos.org/gltf)。这个工具比较坑爹,只能和collada文件放在同一个目录才工作,转换后的结果文件也必须在同一目录,就是说不能指定输入和输出路径,当初坑了我好久才发现。

一个collada文件转换后结果有4个文件,一个.bin,一个.json,两个.glsl。.json文件是描述性的文件,.bin是实际的数据,两个glsl文件是顶点着色语言文件。把这些文件所在目录部署到web服务器上。在client端添加

var ellipsoid = viewer.scene.globe.ellipsoid;
var cart3 = ellipsoid.cartographicToCartesian(Cesium.Cartographic.fromDegrees(lng, lat, height));
var modelMatrix = Cesium.Transforms.eastNorthUpToFixedFrame(cart3);
var quat = Cesium.Quaternion.fromAxisAngle(Cesium.Cartesian3.UNIT_Z, Cesium.Math.toRadians(rotate - 90));
var mat3 = Cesium.Matrix3.fromQuaternion(quat);
var mat4 = Cesium.Matrix4.fromRotationTranslation(mat3, Cesium.Cartesian3.ZERO);
var m = Cesium.Matrix4.multiplyTransformation(modelMatrix, mat4);//获得最终变换矩阵,参考笔者前面写的《坐标变换》篇
var model = viewer.scene.primitives.add(Cesium.Model.fromGltf({url : 'http://localhost:88/gltf/tower.json',//转换后4个文件中的json文件modelMatrix : m, //添加模型的变换矩阵,才能显示在正确位置,否则打死也找不到,被放到地球的某个角落里scale:1.0 //缩放倍数
}));
//模型加载后,如果有动画就播放
model.readyToRender.addEventListener(function(model) {// Play and loop all animations at half-speadmodel.activeAnimations.addAll({speedup : 0.5,loop : Cesium.ModelAnimationLoop.REPEAT});});

加载模型后的效果

模型显示是否顺滑与模型三角面数,机器配置,浏览器版本密切相关。浏览器推荐使用Chrome30.0以上。

本篇到此结束

转载于:https://my.oschina.net/u/1585572/blog/290604

cesiumjs开发实践(七) 3D模型相关推荐

  1. cesiumjs开发实践 (一)

    cesiumjs 简介.开发环境搭建   群号:309141738 摘要 Cesiumjs 是一套javascript库,用来渲染3D地球,2D区域地图,和多种GIS要素.不需要安装任何插件就能在支持 ...

  2. 基于yolov7开发实践实例分割模型超详细教程

    在我前面的博文中写过基于yolov5-v7.0模型开发的实例分割模型的超详细教程,即使是零基础入门的新手也都是可以按照教程步骤一步一步开发构建自己的应用.文章在下面,感兴趣的话可以自行移步阅读即可: ...

  3. stacking模型融合_算法实践七:模型融合

    模型融合 用目前评分最高的模型作为基准模型,和其他模型进行stacking融合,得到最终模型以及评分结果. 考虑到时间问题,最优分箱和IV值计算先过,直接利用随机森林筛选出来的特征进行训练,只是实现整 ...

  4. Unity 3D游戏开发 - U3D入门 | 3D 模型重用之预制体

    父子关系 空物体 类比电脑上的文件夹,用于管理资源 Hierachy 面板右键 --> Creat Empty 创建一个空物体 父子关系 原则:移动父亲,儿子就会跟着移动.就像移动文件夹,文件夹 ...

  5. 【3D实践】3D模型骨架提取及分析

    作者:憨豆酒(YinDou),联系我yindou97@163.com,熟悉图形学,图像处理领域,本章的源代码可在此仓库中找到:<https://github.com/douysu/person- ...

  6. C++解析3d模型文件jt

    1.JT格式介绍 JT(Jupiter Tessellation)是一种高效.专注于行业且灵活的 ISO 标准化 3D 数据格式.西门子PLM Software开发的轻量级3D模型格式: 设计为产品数 ...

  7. Unity3D游戏开发初探—2.初步了解3D模型基础

    一.什么是3D模型? 1.1 3D模型概述 简而言之,3D模型就是三维的.立体的模型,D是英文Dimensions的缩写. 3D模型也可以说是用3Ds MAX建造的立体模型,包括各种建筑.人物.植被. ...

  8. 七.卡尔曼滤波器开发实践之七: 无损卡尔曼滤波器(UKF)进阶-实例篇

    本系列文章主要介绍如何在工程实践中使用卡尔曼滤波器,分七个小节介绍: 一.卡尔曼滤波器开发实践之一: 五大公式 二.卡尔曼滤波器开发实践之二:  一个简单的位置估计卡尔曼滤波器 三.卡尔曼滤波器(EK ...

  9. PNAS | 开发用于优化蛋白质设计的3D模型

    研究人员开发了一个计算程序,以帮助设计治疗用蛋白质,预测相互作用. 研究人员已经开发出一种过程,他们说这种过程可以减少计算蛋白设计所涉及的工作.该技术使用三维(3D)结构模型来预测分子嵌段的新颖组合如 ...

最新文章

  1. java 摘要算法_Java实现消息摘要算法加密
  2. 面试必问:读写一致性,你需要思考的问题
  3. 自定义GrildView实现单选功能
  4. 小G的项链(Manacher)
  5. 整数的个数(信息学奥赛一本通-T1067)
  6. USACO Broken Necklace
  7. [转]NopCommerce 多数据库方案
  8. 韩顺平_JAVA_视频教程_下载(打开迅雷,直接复制链接地址即可下载)
  9. 企业微信 发送或接收 图片失败,怎么办?
  10. 天空的心事,只有云懂
  11. Echarts与bmap结合使用百度地图系统自带的12个个性化模板mapStyle列表
  12. TestFlight应用
  13. 3D游戏:八、粒子系统与流动效果
  14. java判断或_Java判断用户名和密码是否符合要求过程详解
  15. 云宏超融合+英特尔® =?
  16. WPF工控组态软件之冷却塔和空气压缩机开发
  17. kde调整分辨率_7个很酷的KDE调整将改变您的生活
  18. C#EXCEL操作大全
  19. LLVIP数据集下载
  20. Robot Arm from solidworks to ros

热门文章

  1. 【251】◀▶IEW-Unit16
  2. HDU 5914 Triangle 数学找规律
  3. SetWindowHookEx 做消息响应
  4. [angularjs]初学小记1
  5. Command(命令模式)
  6. 交换机命令行配置与VLAN
  7. SQL server 2005安装问题汇总
  8. python list元素合并_Python-列表+-01-两个列表各元素合并
  9. 从未来所思考到的事情
  10. spirng cloud docker部署