百科问答小站 logo
百科问答小站 font logo



Unity为什么可以做数字孪生仿真模拟?Unity不是做游戏的引擎么? 第1页

  

user avatar   huangzhe 网友的相关建议: 
      

某游戏前Unity3D主程前来讲讲。

我从2014年开始使用Unity,最后使用的Unity版本是5.X,后面因转做机器学习这块,之后就没怎么用过unity了,感觉错过了元宇宙风口(哈哈哈哈开玩笑的,我对元宇宙仅仅保持观望态度,而且我更喜欢搞机器学习)

有一段时间没用了,有点生疏了,这里就稍微讲讲个人浅见,如不够深刻,请见谅。

Unity作为游戏引擎,上手其实还是很低门槛的。我们2014年时为了给投资人展示我们想做的玩法,仅仅用了一周,就做一个3D射击游戏demo。其实做3D游戏,何妨不是一种在虚拟空间的仿真呢。

通过拖拽的方式,你可以设置:

  • 多个相机。大家打游戏的时候,例如飞车游戏,你可以切换不同的视角,在unity中实现起来很简单,在汽车上绑定几个相机,切换视角时,激活其中一个相机就好。
  • 把属性直接拖拽到模型上,控制模型的行为和表现。例如下图,有一个Camera Follow的代码来控制相机跟随

当然,在object里挂载代码并非是一个好的实践,这会让代码分散,同时不方便做版本管理。但在快速出demo阶段,用用无妨。


除了上面说到的,Unity引擎一个方便的地方是它的物理引擎。例如物体上还可以挂载其他属性,例如Collider属性,这样两个物体碰撞时的行为引擎就会自动计算出来。例如下图这种碰撞加抛物线效果,完全不需要你写代码实现,只需要加碰撞盒子,设置刚体,设置重力即可。


你还可以设置光照,让场景拥有阴影。不过实时计算阴影是很费资源的,如果光源是平行光且角度不变,你可以提前做好场景烘焙。所谓场景烘培,就是在unity里提前计算好阴影的位置,生成lightmap,贴在原场景上。

当然,用Unity建模是非常难的,不过Unity对其他建模软件的模型支持得很好,Maya或3D Max建模完成后,导入Unity里用就行了。

在我转行后,Unity的新版本还有机器学习,从这个版本开始我就没用过Unity了,不过看过几个demo,知道unity的ML-Agents能做什么(嘿嘿,还好我是搞机器学习的)。ML-Agents使用了强化学习,使得角色可以更智能。说句题外话,在ML-Agents出来前,我们也做过简单的基于规则的AI。虽然叫AI,其实只是个有限状态机(FSM),和机器学习一点关系都没有。

讲完Unity这些特性后,可以开始回答问题,为啥Unity为什么可以做数字孪生仿真模拟?

数字孪生业界普遍定义为[1]

将数字孪生技术定义为:是充分利用物理模型、传感器更新、运行历史等数据,集成多学科、多物理量、多尺度、多概率的仿真过程,在虚拟空间中完成映射,从而反映相对应的实体装备的全生命周期过程。

做数字孪生仿真模拟,我们需要:

  • 快速可用3D的开发环境。哦对了,Unity里可以用米作为计量单位,你可以完全1:1的模拟某个物体。
  • 环境仿真。例如光照和场景烘培。
  • 物理引擎。当然,如果你设置的碰撞体是立方体或者圆柱体,碰撞时计算就会少很多,但如果是不规则的碰撞盒子,那么计算量会变大,仿真时需要取舍。
  • 机器学习。可以让仿真环境多一些智能体行为。

举个具体的例子。我们想做一个地区交通状态的数字孪生,看看自动驾驶在这个地区是否可行,我们可以在unity里建立这个城市的地图,然后试试在不同地方放入一定数量的车辆,通过第三方API来控制车辆自动驾驶,我们可以从中得知地区能容纳多少车,发生交通事故的频率及严重性等等,从而助力城市治理。

所以,确实Unity能满足数字孪生仿真的基本要求。

不过,Unity的功能也是有限的,在NLP(例如语音合成),计算机视觉这块,Unity以及第三方unity库能提供的功能非常少,如果要做好数字孪生模拟,仅仅靠unity还不够,还得通过第三方的API,才能使得数字孪生仿真效果更智能。但Unity作为数字孪生仿真模拟的容器,确实是非常适合的。

参考

  1. ^ 《智能制造术语解读》



  

相关话题

  如何评价Unity中国特供版一天一激活? 
  元宇宙和数字孪生的异同是什么? 
  为什么unity愿意用c#作为代码语言,而虚幻却使用c++? 
  如何评价Unity中国特供版一天一激活? 
  以GDI,WPF,win32,Qt,DX,Unity,.net为例的几组“名词”有什么联系? 
  本人研一,学习ansys一度自闭,有没有大佬可以介绍一下经验? 
  Unity3D 官方教程(拾荒者)Roguelike tutorial 的优化问题? 
  为什么图形学人才这么少? 
  Unity为什么可以做数字孪生仿真模拟?Unity不是做游戏的引擎么? 
  在顶级游戏开发的过程中需要怎样的编程实力? 

前一个讨论
研究推荐系统要对NLP很了解吗?
下一个讨论
深海鱼放生的时候在肚子上戳个洞,是否有科学道理?





© 2024-11-22 - tinynew.org. All Rights Reserved.
© 2024-11-22 - tinynew.org. 保留所有权利