Unity制作数据可视化三维场景

Posted MiYa_ZCW

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity制作数据可视化三维场景相关的知识,希望对你有一定的参考价值。

数据可视化大屏是这几年比较热门的一个方向,人们对数据的感知方式,也慢慢要求更严苛了。

Bi报表到数据可视化大屏,再到三维可视化大屏,这个发展趋势也体现了人们在使用数据可视化大屏时对效果的要求逐渐提高。

2维图表在过去几年的使用中,不断完善,已经有了非常成熟的图表库,效果上的优劣也逐渐区别于设计师的色彩搭配以及图表的布局方式。


最开始的三维可视化,是使用Js开发WebGL三维场景,因为使用Js制作的三维和网页前端结合得更好,但是使用Js库开发会有几点不足:

  1. 效果比较差,当然这是受限于开发人员水平,因为Js的三维库还是不太完善。
  2. 效率低,使用Js库开发三维,在场景搭建,效果调整上的效率比较低。

游戏引擎


由于以上两点,最近两年又出现了一大批使用游戏引擎制作三维可视化的公司。

主要使用的游戏引擎有UE 和  Unity,这两款引擎很多人很难区分其中的不同,其实针对做三维可视化,这两款引擎还是有很大区别的。

UE的优点

  1. 效果好,很容易搭建出70分的三维场景
  2. 对美术设计师很友好

UE的缺点

  1. 不支持WebGL,不能实现真正的多端访问(云渲染多端成本太高)
  2.  效果太一致(很多公司使用UE,都是基础功能搭建,因此出来的效果都差不多)

Unity的优点

  1. 支持WebGL,可以发布网页,实现真正多端
  2. 丰富的插件库

Unity的缺点:

  1. 官方没有像UE制作一套自己的场景效果插件,因此默认效果只有30分
  2. 对于设计师和美术不友好(引擎的边界很明确,没有针对美术集成一些工具,把这部分工作完全交给第三方软件)

我主要使用Unity开发三维可视化的场景,现在也有很多公司称为数字孪生场景,但是我感觉现阶段的东西,和数字孪生还相差比较远。

Unity三维和图表结合


三维可视化最后落地还是属于可视化大屏,对于可视化大屏图表必然是不可或缺的。

很多人可能会纠结图表是在Unity中做,还是网页前端完成呢?

我之前在git上发现有人在Unity中实现了一套图表库,但是我觉得这个是完全没有必要的,把这部分工作交给更加专业的js前端做会更好,因为他们有非常完善的图表库,图表动画效果制作也非常容易、美观。还有一点是对接数据也更加方便。

Unity只需要完成它更擅长的三维效果就好了,那么三维怎么和图表结合呢?

PC端,Unity打包PC程序并且内嵌网页,网页展示图表内容

Web端,Unity发布云渲染链接,用视频流的方式嵌入到网页中和图表一同展示

Web端,Unity发布WebGL程序,嵌入到网页中和图表一同展示

用的比较多的是第一种和第三种,第二种比较鸡肋。

效果展示

数字孪生 | 三维可视化 | EasyV智慧城市解决方案

EasyV数字孪生可视化 | 助力红色文化传承 | 智慧旅游景区打造


以上两个视频是我在袋鼠云的时候,做的两个项目,这两个项目的图表和三维结合的方式就是第三种。 

「EasyV」可视化大屏设计|智慧社区

杭州亚运会环保可视化在线监测系统


以上两个视频中,第一个是我在袋鼠云做的,图表和三维结合的方式是第一种。 

第二个视频是最近在数澜做的,图表和三维结合的方式做了两种形式,分别是第一种和第二种。

结尾


最近会做一系列Unity制作三维可视化的技术文章,大家有什么疑问或者有什么想学习的可以留言。

 

怎样实现unity3d(c#)与树莓派(python)之间的数据的实时交互?

怎样实现unity3d(c#)与树莓派(python)之间的数据的实时交互?怎样实现unity3d(c#)与树莓派(python)之间的数据的实时交互?
unity是在windows平台,树莓派通过远程桌面显示,怎样使unity3d场景中事件触发后将有关数据传递到另一个平台上的树莓派,急求

Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。Unity类似于Director,Blender game engine, Virtools 或 Torque Game Builder等利用交互的图型化开发环境为首要方式的软件。其编辑器运行在Windows 和Mac OS X下,可发布游戏至Windows、Mac、Wii、iPhone、WebGL(需要HTML5)、Windows phone 8和Android平台。也可以利用Unity web player插件发布网页游戏,支持Mac和Windows的网页浏览。它的网页播放器也被Mac 所支持。 参考技术A 若要实时交互,当然是写Socket啊。这不是明摆的嘛?
另外,你也可以在树莓派上安装一个.NET CORE(开源跨平台的.NET),这样你就可以前后端都用C#实现了。Python写小程序很爽,但写复杂逻辑,实在太难用了。由于是动态语言,创建的对象太多的话,你根本无法辨别哪个对象对应哪个类。

以上是关于Unity制作数据可视化三维场景的主要内容,如果未能解决你的问题,请参考以下文章

国内有啥好的live2d和unity3d公司吗?三维可视化 3D 开发

unity资源那的favorite怎么去掉

什么是unity3d?

Unity3D 用脚本控制Shader参数

怎样实现unity3d(c#)与树莓派(python)之间的数据的实时交互?

unity3d和虚幻4哪个好