2017-06-04 12:57:01 jxsdq 阅读数 751
  • Unity 值得看的500+ 技术内容列表

    Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

随着计算机图形技术的发展以及CPU运算能力的提升,用户对于图像展示方面的要求越来越高,那么大屏幕展示系统应运而生。目前市场上已有多种大屏幕并行渲染的解决方案,例如使用硬件方式:屏幕拼接器,来解决屏幕之间的图像同步问题。还有已经较为成熟的SAGE2,用网络传输方式来完成屏幕间的图像同步。这些方式都各有利弊。那么,博主本次展示的是基于Unity这款软件完成的并行渲染系统,同时集成了多个目前市面上比较成熟与应用广泛的插件,硬件等,完善了整个展示系统。

写在前面,本项目的硬件结构为多处理器的屏幕显示系统,每个屏幕对应一个CPU,那么多个CPU的处理数据效果要好于SAGE2系统中的单CPU处理效果,可以更加完美的发挥出高分辨率屏幕的性能,使模型展示的效果达到最大值。

下面我们将要开启本次学习,整个项目我分为五章
一:概述
二:Cluster Package的使用(核心)
三:Unity实战-network组件使用(核心)
四:Vuforia的开发(AR拓展部分)
五:Leap Motion开发(手势识别拓展部分)
六:Hololens开发(AR眼镜拓展开发)

先上效果图:

并行渲染效果图
并行渲染效果图

AR效果在安卓手机端显示
AR效果在安卓手机端显示

手势控制模型移动与放缩
手势控制模型移动与放缩

2017-06-04 19:14:55 jxsdq 阅读数 333
  • Unity 值得看的500+ 技术内容列表

    Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

上一节说到了如何让机器了解,应该同步哪些内容。
我们需要新引进一个组件,叫做Network View。这个组件是本用于制作Unity3D网络游戏的组件,用以同步模型与场景到多个客户端。话说到这里,这个组件的作用已经十分清晰了。只需要我们把需要动态同步到Slave的模型,加载一个Network View就可以啦。如下图:
这里写图片描述
图中可以看到我们的Ford车被加上了网络组件后,被赋予了一个View ID,那么这个Id在整个系统中,就是用来找到Ford车用的。简单来说,虽然Slave屏幕中,也运行的是同一个Unity程序,但是由于同步了Master中的模型,Slave原来的模型,是不显示在屏幕中的。那么下一步,导出这个Unity程序即可。

不过不要忘了,每一个屏幕都要对应一份自己的节点信息,这个节点信息需要复制到每一台子屏幕中,以供NodeManager读取。

2017-06-04 19:31:28 jxsdq 阅读数 388
  • Unity 值得看的500+ 技术内容列表

    Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

以下为拓展系统拓展部分,为了能使本展示系统能够更加的有表现力,更加完善,我又在原系统中增加了AR模型展示部分,具体说呢,还需要再多加一个安卓手机端的APP,用以观看AR模型,
移动端AR技术的开发同样基于Unity3D,并使用Cluster Package作为核心开发包,同步模型到移动端,使用Vuforia开发包实现模型在手机中的3D同步展示,很好的加强了用户的观看体验。移动端AR开发作为大屏幕端的2D展示的一种补充,是与时俱进的设计,也是富有人性化的设计。这个安卓端APP需要额外来开发,那么下面我们就开始一步步的进行讲解。

首先,对于Vuforia不懂得同学,可以先去看一些Vuforia的教程。在本文中,就不过多进行赘述,不过给大家几个链接,先行了解:
Vuforia下载官网:https://developer.vuforia.com/downloads/sdk
官网教程:https://developer.vuforia.com/downloads/samples
中文教程:http://blog.csdn.net/dzyi_/article/details/22892641

下面直接开始开发移动端AR!
(我的导出APP方法是使用Vuforia的Unity插件,在Unity中制作同步AR模型,再通过Unity导出Android的APP。)

AR端的硬件主要有Android手机,无线WIFI,以及主机。主机与Android手机基于WIFI链接传输信息,同步模型信息。交互设备在操作主机中模型的同时,主机会使用network view组件同步模型信息到手机端,手机端不需要链接外持交互设备,仅需要从主机处接受信息,并更新信息到AR模型即可。
上图:
先配置ARCamera:
这里写图片描述
在配置Target:
这里写图片描述
在ImageTarget的选择上,由于我使用的是最新的Vuforia,所以和网络上的很多教程,显示的不一样,AR的key要在工具栏里面的Vuforia栏里面的通用设置里面找,还要配置ARCamera里面,而不是在ImageTarget里面设置。同时,Untiy的选择版本是3.5。

最后上图:(手机里面的模型可以随着大屏幕内部的各种变化而跟着变化)这里写图片描述

2017-06-04 16:03:57 jxsdq 阅读数 893
  • Unity 值得看的500+ 技术内容列表

    Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

本节主要介绍的是基于Unity的并行渲染的核心Unity组件:Claster Package。那么在讲使用之前,先讲讲这个组件的应用原理。

在官方的文档中,我们可以看到,原文主要讲解了:使用Cluster Package(以后简称CP),需要对Unity场景内的视角进行切割,原文中以三块屏幕为例,那么主视角需要被分割成等量的三份,通过标注出每块屏幕的左上,左下和右下三个顶点,并标注出主视角的位置,来确定每块屏幕相对于主视角的位置。
本图是一块屏幕与相机的相对位置确定图:这里写图片描述
那么对于多块屏幕,就需要多个如图所示的顶点位置,当分割开每块屏幕之后,组件会帮助你把相应的场景“送”到相应的屏幕中去。那么现在,我们看到的全部屏幕,组合起来,就是整个Unity场景了。那么下一个问题来了,静态的场景同步搭建完成,当模型动起来之后,如何同步?

Cluster Package组件是整个项目的核心,组件中,通过节点控制器NodeManager来判断每个节点屏幕的属性,如果节点属性为Master,那么该节点同步数据到其他的屏幕,如果节点属性为Slave,那么该节点接受来自Master节点的模型信息。如下图所示:
这里写图片描述
那么我们刚刚说到的NodeManager就是控制动态同步的核心之一,每个节点屏幕都有其信息,信息不仅仅包括刚刚说的Master和Slave的属性区别,节点信息还包括每个屏幕的三个顶点位置,主视角位置等等信息。通过NodeManager的识别,把这些信息反馈给Master的时候,Master就知道各个屏幕相互之间的位置以及从属关系了。顺便一说,一个系统只能有一个Master。

那么到了目前为止,我们已经可以看到了整个并行渲染的雏形了。下一节,我们开始讲如何让各个屏幕了解,应该同步哪些内容。

2017-06-04 20:52:14 jxsdq 阅读数 365
  • Unity 值得看的500+ 技术内容列表

    Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

为了拓展交互方式,本系统不仅仅使用了键盘与鼠标作为输入设备,同时,我还使用了Leap Motion作为手势输入设备进行人机交互。基于Leap Motion的手势交互开发,是本项目的重要交互方式之一。随着虚拟现实技术的发展,手势识别与手势操作技术越来越受到开发者的重视,本项目中,对于模型的操作不仅仅可以使用键盘与鼠标,还可以使用手势来对模型进行操作,本扩展功能极大的丰富了交互手段,提升用户的观看以及操作体验。

下面还是一样,不介绍如何学Leap Motion,不了解的同学直接看链接:
Leap Motion SDK下载官网:https://developer.leapmotion.com/get-started/
Leap Motion中文教程:http://blog.csdn.net/admintan/article/details/51075405

本项目中,手势识别输入是作为键盘输入与鼠标输入的补充而开发的,键盘与鼠标负责对模型进行操作,包括放大,缩小,移动等基本操作,但是基于键盘鼠标只能供一个用户操作,本项目新增加了Leap Motion硬件进行以手势识别的方式对模型进行操作,同样可以进行移动,放大,缩小,旋转等各种操作,不仅仅是方便了用户对于模型的操作与观看,同时采用了国际上最新的技术对本项目进行扩展,增进了项目的新颖程度。

那么下面直接上效果图:

对模型的抓取拖动
这里写图片描述

对模型的旋转
这里写图片描述
对模型的放大缩小
这里写图片描述

代码:
判断双手紧握:
这里写图片描述
判断旋转与缩放:
这里写图片描述
判断抓取移动:
这里写图片描述

本次教程就到此为止了,还有学习需求的同学可以来git上下载代码。
http://github.com/daqians/UnityCluster/

Unity3D开发之协程

阅读数 2425

没有更多推荐了,返回首页