设为首页收藏本站

微软Hololens全息现实网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

一键登录:

查看: 687|回复: 1

Unity教程|10分钟轻松制作360全景VR应用

[复制链接]
发表于 2017-7-10 15:54:18 | 显示全部楼层 |阅读模式

随着科技的发展与进步,开发VR内容的硬件与软件成本也越来越容易被人接受。今天这篇教程,将教大家使用Unity在Google Cardboard平台上制作一款运行在Android设备上的360全景视频应用。 准备工作在进行具体的开发之前,要先准备好所需的硬件与软件,具体需求如下:一部Android手机,必须具有陀螺仪,用...

随着科技的发展与进步,开发VR内容的硬件与软件成本也越来越容易被人接受。今天这篇教程,将教大家使用Unity在Google Cardboard平台上制作一款运行在Android设备上的360全景视频应用。 准备工作在进行具体的开发之前,要先准备好所需的硬件与软件,具体需求如下:一部Android手机,必须具有陀螺仪,用于侦测头部移动,并且需要搭载Android KitKat 4.4及以上版本的操作系统;一部Cardboard眼镜;Unity 5.6或以上版本;GoogleVR SDK for Unity;一个360全景视频文件,需使用360全景相机拍摄。 实现步骤普通视频的画面为矩形,而360全景视频为球形画面。所以首先需要创建一个球面用于投射360全景视频。玩家将位于球体内部,以便于从各个方向观看视频。下面来详细介绍实现步骤,大家也可以根据自己的需求进行更改。


1、制作球体 新建Unity项目,或者在已有Unity项目中添加新场景。在场景中新建球体,坐标设置为原点处(0, 0, 0),缩放为(50, 50, 50)。将相机位置也设为坐标原点,作为玩家的眼睛,这样看起来视频才不会变形。


50864890c201e7b23a518c529bc937fe.jpg


将相机放置于球体内部后,会发现场景中无法看到球体了。这是因为很多引擎为了提高性能,都不会渲染模型内部。下面的步骤就来解决该问题。


2、翻转球体法线 由于需要看到球体内部才能观看投射的全景视频,所以接下来要将球体法线进行翻转。在Unity中,球体并非数学意义上的真正球体,而是由大量小的平面拼接而成的多面体。球体外部可见但内部不可见,所以需要使用着色器来翻转这些小平面。

63b7d4d1f30e71d6450b09f4c9d00b23.jpg


编写着色器附加到球体所使用的材质上,材质用于控制物体在Unity中显示的外观。着色器则用于计算每个被渲染的像素点颜色,会用到材质的多种属性,例如光照等。 新建材质替换球体使用的默认材质,然后新建着色器赋给刚刚新建的材质。着色器代码如下:


e3271785890f97c7b1024929b95ea3f0.jpg

该着色器会翻转球体的每个像素,现在从球体内部也可以看到它白色的材质。下面让球体变为视频播放器。


3、将全景视频映射到球体 将准备好的MP4格式全景视频导入项目,并将该文件直接拖拽到球体上,Unity会自动添加Video Player组件,现在这个球体已经可以播放360全景视频了。还可以尝试自己调整一些设置,如循环播放或音频设置等等,Unity 5.6的视频播放器还支持流媒体播放!


4、设置Google Cardboard 下面实现在VR眼镜中观看全景视频。使用GoogleVR SDK创建一个“立体”视图,屏幕将分为左右两边分别对应两只眼睛,两边都会有“鱼眼”效果,再结合Cardboard眼镜镜片的扭曲效果就会形成景深与沉浸感。

e9338d208ed35583a5e094fd59f04a46.jpg


导入GoogleVR SDK,并更改一些Android相关的设置:依次点击Unity菜单项File – Build Settings,如果构建列表中不包含当前场景,则点击添加。选择Android作为构建的目标平台;切换平台完成后,点击Player Settings打开播放器设置;在播放器设置的“Other Settings”下勾选“Virtual Reality Supported”。在Virtual Reality SDKs下点击加号,选中Cardboard添加到列表;更改Bundle Identifier作为应用标识符,例如com.domain.demo360;将Minimum API Level设为“Android 4.4 ‘Kit Kat’ (API level 19)”。


设置调整完成后,将GoogleVR/Prefabs文件夹下的“GvrViewerMain”预制件拖拽到场景中,在检视视图中将其坐标设为球体中心(0, 0, 0)。GvrViewerMain预制件用于控制所有的VR模式设置,例如将屏幕调整为Cardboard眼镜模式等,它还可用来调用手机的陀螺仪以检测头部的移动。玩家头部移动时,场景中的相机也会随之移动。 5在Android设备上运行应用 最后一步,将应用构建到Android设备上,用数据线连接Android设备,在Build Settings中点击Build & Run直接在设备上运行应用,或者先Build为APK再离线安装到设备上。


30fdc51f825a8d100e0aaca2aaebf63b.jpg


启动应用后将手机放入Cardboard眼镜,就可以360度观看视频了。 结语使用Unity制作观看360全景视频的应用非常简单,整个过程不到10分钟就能完成。但今天教大家制作的全景视频并未加入与玩家交互的部分,欢迎大家在此基础上继续深入,加入一些互动操作或是粒子效果让整个应用更加丰富,制作出更佳美妙的沉浸式虚拟现实体验。


论坛(HoloLens全息现实网): http://hololens8.cn

VR/AR/HoloLens开发者QQ群:220104582
VR/AR资源分享QQ群:281921834
HoloLens/VR/AR交流QQ群:433190386





上一篇:Unite 2017 | 运用Unity开发HoloLens应用实战技巧(下)
下一篇:Unity教程 | 手把手教你做一款《愤怒的小鸟》(上)
发表于 2017-7-10 16:16:35 | 显示全部楼层
未来美好额。。
*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

注册验证邮件查收提醒:

由于各大邮箱政策原因,

如果没收到邮件提醒,

您的注册验证邮件可能

被投送到您邮箱的垃圾箱,

请注意查收验证哦


QQ|小黑屋|Hololens全息现实网 ( 京ICP备15026232号   点击这里给我发消息

GMT+8, 2018-6-25 23:17 , Processed in 0.521586 second(s), 32 queries .

Powered by Hololens全息现实网 X3.2

© 2001-2017 Hololens全息现实网

快速回复 返回顶部 返回列表