物联网3D场景开发就如同一场舞台剧,舞台就是虚拟空间中的3D场景,演员就是场景中的各类模型,它们有着各自相应的位置和角色功能,而在舞台中摆放着的道具就是3D场景中各个模型的配饰,当“舞台搭建、演员、道具、API剧本”准备就绪了,这出3D剧目就拉开了序幕……

而这出舞台剧的“幕后操控者”(导演)其实就是我们“众星捧月”的3D开发工程师!他们不仅负责舞台剧的排练和演出,同时还要负责甄别相应的“演出事故”原因!而在UINO也有一位专注悬疑舞台剧的“大导”,UINO研发中心负责ART-可视引擎的3D开发工程师翔哥,在七夕佳节之际就破解了大型舞台系列悬疑剧之《Proxima模型闪烁案》,下面我们一起来看看翔哥“破案”的一天!

Proxima模型闪烁案

演出事故

Proxima 3.2版本里,场景中的一些模型会不由自主的闪烁,给场景添加了无限的“活力”,给实施人员添加了无限的惆怅,给翔哥添加了无限的幺蛾子!

看到这种情况,翔哥不禁有点焦头烂额,隐约觉得这“演出事故”背后的原因可能不是什么善茬。但翔哥的直觉告诉他,这估计是渲染的问题,所以首先就怀疑了instance渲染(模型批量渲染)。于是,翔哥开始了操作,在配置里把模型批量渲染先关掉。

果然,奇迹出现了,关闭模型批量渲染后就不闪了。手起刀落,为了坐实是instance的问题,咱得有理有据。于是,翔哥用ThingJS在线开发完美的复现了问题,给ThingJS API 提了个工单。不一会,工单就有了反馈。

事故原因

简单说就是场景中的模型缩放(scale)出现了负数,导致instance处理出现了问题。但是问题到这儿就结束了吗?翔哥和这位查看instance问题工单的研发同学有着同样的疑问:为什么物体的scale会有负值呢?

于是,翔哥开始“刨根问底”查找“演出事故”的“幕后黑手”!

破案过程

翔哥在ThingJS在线开发上,通过代码打印出来所有Thing对象的缩放值(scale),确实有一些对象的缩放出现了负数。

然后又打开原始的tjs文件,进行核对,发现原始输出的tjs文件中就记录了负数的缩放值。

而tjs的来源是CampusBuilder,真相进一步接近了,肯定是CampusBuilder中的某个操作导致了模型的缩放有负数!

CampusBuilder,查他!

翔哥打开了CampusBuilder,拖了个模型,发现这里面有个镜像的功能,直觉告诉翔哥,这个操作很可疑很危险。

于是翔哥点击了这个神奇的镜像按钮,然后导出tjs,果然tjs里记录的为负数的scale值。

那么下一个问题接踵而至:这个为负数的scale值合理吗?

从3D原理的角度看,是合理的。

因为模型的镜像就是通过缩放变化实现的,当缩放系数为负时,即发生了镜像变化。

var app = new THING.App();

var url = 'https://model.3dmomoda.com/models/0598C1562DDB48A69C36E58A1DC46E52/0/gltf/'; // 模型地址

var obj = app.create({

type: 'Thing',

id: '模型01',

url: url,

position: [0, 0, 0], //

complete: function (ev) {

app.camera.position = [2.5924633695754356, 4.103642737800483, 1.796776548145628];

app.camera.target = [0.5508564735224164, 1.2163745763678693, -0.24483034790739644];

new THING.widget.Button('创建镜像模型', function () {

var obj = app.create({

type: 'Thing',

id: '模型01-镜像',

url: url,

position: [1, 0, 0], //

complete: function (ev) {

// 设置缩放动画

ev.object.scaleTo({

scale: [1,1,-1], // 缩放倍数

time: 2000, // 动画时间

loopType: THING.LoopType.PingPong // 循环类型 设置循环后 无回调函数

})

}

});

})

}

});

但这样镜像后的模型,肯定是“反”的啊?

比如:原本在左侧的门,镜像后就是在右侧了。

从这一点,也能看出数字孪生的世界里,虚拟空间的“舞台剧”可没我们想象的那么简单。

首先咱UINO是做DCV数据中心可视化起家的,如果实施工程师以前都这么实施的话,开关机柜门肯定早就发现问题了。

难道是因为这个项目的实施工程师不知道?为了“偷懒”,想把模型批量旋转就用了镜像?

取证环节

于是,翔哥又开始调查起了实施人员。由于天色已晚,七夕又要将至,翔哥只能找盼杰(UINO项目经理)这种经验丰富的老实施人员取证了。

从盼杰的信息中,翔哥敏锐的观察到了,“以前”二字。说明,以前实施操作肯定是对的。此时公司已经没人能对证了,只有等第二天再查案了。

第二天,翔哥一早就来到了公司,看到佳琦(UINO项目经理)在,赶紧逮住让他在CampusBuilder操作镜像功能。一番操作后,发现机柜门确实是不太对,并且反复确认佳琦以前的操作和现象确实和今天的不一样了。

于是,翔哥觉得马上就能破案找到“事故真凶”了。应该是CampusBuilder在某次版本升级后,导致“镜像”这个功能发生了变更。于是,翔哥找到ThingJS研发组长张琪,在老版本的CampusBuilder和CampusBuilder2020里确实发现了,“镜像”这个功能有所变更。

老版本的CampusBuilder中的“镜像”功能只是将模型旋转了180度,而非真正的镜像。

从导出的tjs来看,确实也记录了旋转值。

所以之前实施工程师在用此“镜像”功能时,现象是对的,又能满足“一键”将模型“翻转”180度的能力,实施当然要这么用了。

调查结果

而新版本CampusBuilder2020中其实是将原来“镜像”非正镜像的bug给改正确了,因此在CampusBuilder2020版本中的镜像才是真正的镜像!

总结起来就是“怀旧服”CampusBuilder和“体验服”CampusBuilder2020交替时修复了之前的bug,导致各工具间的“信息感知”不对称。

看完这场“悬疑舞台剧”之后,我们能切实感受到数字孪生的技术栈和工具链是一套复杂的体系,各个组件之间有着大量需要相互配合的技术细节。当“悬疑舞台剧”中的“演出事故”模型闪烁案发生时,也是耗费了翔哥一天多的时间才找出真相!

可见,数字孪生引擎技术并非一蹴而就,作为引擎技术栈的提供商,必须通过大量工程实践来构建和完善这套复杂的体系。在日常工作中,犹如翔哥一样的数字孪生技术领域的从业者可能每天都在经历着“无数次的破案”,但也正因为UINO想让数字孪生技术变得简单易用,让大家都能体验到数字孪生可视化跟我们每个人的连接,因此就要付出更多的努力、经过无数次的bug修复、项目工程实践和积累来把各种复杂性屏蔽在底层。

比如,当你想要开发一个数字孪生应用场景时,虽然只需通过UINO提供的CampusBuilder、CityBuilder等工具链实现3D模型位置的摆放、增加配饰、设置参数、标签等信息,之后通过ThingJS、Proxima等平台进行虚拟空间中相应的孪生体集合的业务数据配置、关联逻辑等,就可实现数字孪生可视化场景的应用了。但这看起来易上手的操作背后是UINO规避了无数数字孪生技术底座的复杂性,从而实现了从建模到实施所有环节的简单应用。

UINO近10年都在致力于数字孪生领域的业务探索和技术积累,而在面对实际业务操作过程中出现的“悬疑案”其实也是激发我们持续改进的源动力。未来UINO将努力打造更加完善的数字孪生工具链和标准化平台,更好地支撑数字孪生可视化业务的普及。

数字孪生:www.uino.com

UINO优锘:用悬疑舞台剧的方式打开3D开发工程师的一天相关推荐

  1. UINO优锘科技助力银行业开启智慧运维,踏入智慧金融时代

    可视化运维"新视界"助力银行数字化转型 近几年各大银行从过去以产品为中心全面转向了以客户需求为导向的发展模式,从2017年开始纷纷掀起向智能化.数字化转型的浪潮.尽管业内对&quo ...

  2. 万物互联下的碎片化怎么破?UINO优锘推出物联网产业元宇宙“物联森友会”

    编辑 | 宋慧 出品 | CSDN云计算 移动浪潮之后,随着5G普及,IoT物联网已经成为下一个技术聚焦的领域.不过,万物互联中的"万物"终端,一直都存在着庞杂的应用场景,品类众多 ...

  3. UINO优锘ThingJS-X让数字孪生技术零门槛入门

    优秀的科幻电影中,最吸引人的莫过于那些令人眼花缭乱的未来科技.   看过电影<钢铁侠>的人一定不会忘记其中一个经典画面:托尼·史塔克在设计.改进和修理钢铁侠战衣的时候,并不是在图纸或实物上 ...

  4. UINO优锘:DMV产品绘图篇:数据驱动自动绘制 让IT架构图准确可信

    前几期,我们重点向您介绍了Tarsier-DMV(架构管理可视化平台)的看图.管图能力.其实,DMV不仅对IT架构图实现了可视.可管,同时提供了强大的绘图工具,具有强大的绘图能力.系统能够实现类似于V ...

  5. UINO优锘科技:数字孪生6大概念超强解析

    数字孪生体 数字孪生体也称数字孪生实例,是指现实世界的物理对象在数字空间所对应的数字体.这个数字体不仅仅是一个ID.一条数据,而是一个完整的信息集合.它包括可视化表达的几何模型(3D以及构成3D的几何 ...

  6. UINO优锘科技:一台物理发动机带你看懂数字孪生八要素

    数字孪生在业内有着各种各样的定义,今天小编先带大家从工程角度来看看数字孪生的实现过程. 来看一个具体的例子. 下图是物理发动机,如果我们要建立它的数字孪生体到底要怎么做呢? 首先,我们需要给针对发动机 ...

  7. UINO优锘新slogan“数字孪生,看懂新空间”有何含义?

    阿凡达主题曲<I See You>被译为"我懂你".在电影中,人类可以通过意识连接一副阿凡达的躯壳,操控化身在潘多拉星球上自由活动.所以"I See You& ...

  8. 优锘:ThingJS-X济南广州线下研讨会教你做数字孪生

    数字化转型推动数字孪生可视化管理需求大规模爆发.越来越多客户在考察数字孪生技术,想把数字孪生引入核心业务,因此以数字孪生立项的需求也越来越多.如何快速入局,并只在现有团队基础上,快速装备数字孪生可视化 ...

  9. 数字化转型再下一城,数字孪生厂商优锘科技宣布完成超3亿元融资

    数字孪生技术是传统行业数字化转型的重要抓手,属于国家优先发展的战略性产业之一,已列入国家"十四五"规划纲要. 6月30日消息,数字孪生领导厂商"UINO优锘科技" ...

  10. 优锘科技:企业架构管理平台荣获2021年度创新产品奖

    近日,B.P商业伙伴D大会"2021数字生态年度大赏榜单"正式发布出炉.UINO优锘出品的企业架构管理平台QuickEA荣获"2021年度创新产品奖". 202 ...

最新文章

  1. 初识java类的接口实现
  2. Spring之注解方式实例化Java类
  3. Visual Studio 2005 SQL Server 2005 are COMING!
  4. 8.VMware View 4.6安装与部署-connection server(View Transfer Server)
  5. window.onload 不执行
  6. JavaScript学习笔记——对象知识点
  7. flink读取不到文件_日处理数据量超10亿:友信金服基于Flink构建实时用户画像系统的实践...
  8. python部分 + 数据库 + 网络编程
  9. web应用调试工具_如何使用浏览器开发人员工具调试渐进式Web应用程序
  10. stats | nls——求解非线性回归的待定参数
  11. 关于eclipse新建web项目,提示:The superclass javax.servlet.http.HttpServlet was not found on the Java解决办法...
  12. 短信猫软件的实现(C#)九7bitPDU的编码
  13. 4600u黑苹果 r5_黑苹果集显hd4400、hd4600显卡Clover引导驱动方法教程
  14. IFIX组态软件WINCC INTOUCH数据库 日志SQL记录,时班日报神器
  15. 产品读书《设计心理学1-4》-设计
  16. lzr 登机牌扫描access_lzr1.top
  17. Java 8 Update 25 (8u25)
  18. 交叉编译zlib,libpng
  19. c语言程序设计教学要求,C语言程序设计教学中的问题及改革建议①
  20. springboot最新minio实用javaAPI教程-8.0.x

热门文章

  1. 这里有最新最全最专业的便携图形工作站硬件配置方案,来看看?
  2. 影视后期制作流程及UItraLAB H480系列高性能图形工作站
  3. 佛罗里达州立大学计算机专业排名,佛罗里达州立大学有哪些专业_专业排名(QS世界排名)...
  4. 51nod1521 一维战舰
  5. 腾讯确认QQ大规模盗号
  6. qq 病毒 html,盗qq号软件里有病毒吗
  7. QLineEdit控件添加提示语
  8. 如何用Android Stuido 调用百度翻译的API
  9. 数据库中round的用法介绍
  10. MySQL 有哪些锁?