Unity VR全景漫游
2016-05-28 17:38
417 查看
前言
最近VR如火如茶,就学习就落伍啦,所以有空闲时间研究下相关知识。本文介绍了两种方法来制作VR场景:
方法一:通过6张小图搭建的VR场景
方法二:通过一张全景图来搭建VR场景
最后搭建场景的方法是相同的,可以小图或者全景来充当场景。
软件环境
Unity5.3.1 X64: http://unity3d.com/cn/get-unity/download/archivePTGui[可选]: 把全景图转成6个立方小图 http://www.ptgui.com/download.html
Google VR SDK For Unity: https://github.com/googlevr/gvr-unity-sdk
全景图片一张:(自行拍摄或者google查找
切立方体图
1、运行PTGui,选择 Tools – Convert to QTVR/Cubic2、点击 Add Files,添加全景文件
3、选择 cube faces,6 separate files (立方体表面,6个单独文件),可以选择 Cube Face Names ,设置每个文件的后缀
4、点击 Convert ,输出文件和你的全景图片在同一个目录
![](https://images2015.cnblogs.com/blog/363476/201606/363476-20160618222432213-1004501246.png)
切图结果
![](https://images2015.cnblogs.com/blog/363476/201605/363476-20160528173720928-345924575.png)
6张立方体图设置
1、导入 GoogleVRForUnity.unitypackage (如果已有,可忽略)2、导入切好的6张小图,选中这6张图,统一设置图片的属性如下:
![](https://images2015.cnblogs.com/blog/363476/201605/363476-20160528173722131-1492784057.png)
3、创建一个mat,命名为scene_cubes
4、修改scene_cubes的shader为 skybox/6 sided
![](https://images2015.cnblogs.com/blog/363476/201605/363476-20160528173723303-1734909994.png)
5、把6张小图根据名字放入相应的区域
![](https://images2015.cnblogs.com/blog/363476/201605/363476-20160528173724725-1123030044.png)
6、现在你的资源看起来应该如下
![](https://images2015.cnblogs.com/blog/363476/201605/363476-20160528173725975-1451825677.png)
全景图设置
1、导入 GoogleVRForUnity.unitypackage (如果已有,可忽略)2、导入全景图(未切割的大图),设置属性如下:
![](https://images2015.cnblogs.com/blog/363476/201605/363476-20160528173727053-1183082519.png)
3、创建一个mat,命名为scene
3、修改scene的shader为 skybox/cubemap,并把步骤2的全景图,拖动到CubeMap中
![](https://images2015.cnblogs.com/blog/363476/201605/363476-20160528173727913-195345532.png)
4、现在你的资源看起来如下
搭建场景
1、拖动gvr sdk自带的GvrMain.prefab到场景中,当然也可以自已创建,注意:结构要和GvrMain一样,组件也要绑定。![](https://images2015.cnblogs.com/blog/363476/201605/363476-20160528173729709-1479248950.png)
2、修改Main Camera 的 Clear Flags为SkyBox,而不是原来的 Solid Color,修改后左右相机也会保持一致。
![](https://images2015.cnblogs.com/blog/363476/201605/363476-20160528173730647-1525317474.png)
3、选中 左右镜头,给他们添加 SkyBox,并把 scene_cubes.mat 或 scene.mat 赋值 [可省略]
![](https://images2015.cnblogs.com/blog/363476/201605/363476-20160528173731834-596768961.png)
4、点击 Window – Lighting 打开Lighting窗口,在Scene 中设置SkyBox为 scene_cubes.mat 或 scene.mat
![](https://images2015.cnblogs.com/blog/363476/201605/363476-20160528173733022-579836606.png)
运行结果
按住Alt键,移动鼠标模拟头部运动![](https://images2015.cnblogs.com/blog/363476/201605/363476-20160528173745881-1716987653.gif)
参考资料
QTVR
QuickTime VR(也被称为QTVR)是苹果公司的QuickTime支持的一种文件格式。可以用它观看、制作可拖拽的全景照片,并通过在不同角度拍摄的图像来观察物体。它作为QuickTime播放器的插件工作,也可以以web浏览器的QuickTime插件方式工作。QuickTime VR可以在Windows系统中也可以在苹果系统中工作。
全景
虚拟全景图是环绕着观众的全景图(在内,向外),使人产生置身其中的感觉。通过“拼接”几张正常照片或者是两张采用了180度鱼眼镜头拍摄的照片来制作,或使用具有专门功能的全景相机,甚至使用三维建模的场景渲染的两张图片。单列全景,用一个水平行的照片。 多行全景,与在不同倾斜角度拍摄的多行照片。
虚拟现实全景进一步分为包含顶部和底部,称为立方体或者球形全景,那些不包括顶部和底部的通常称为柱形全景。
单个全景,也称为节点,是从空间的独立的一个点拍摄到的。通过连接多节点或多对象的影片,使观众可以从一个地点转移另一个地点。这种多节点的QuickTime VR影片被称为场景。
苹果公司的 QuickTime VR文件格式的对全景图节点有两种表达方式:
圆柱形(由围绕观众而成一个360度的图像) 立方(由环绕观众的六张图片两两90 °× 90°正交构成的立方体 )
他们中的每一个通常被细分或者平铺成几个较小的图像,并被储存到一个特殊格式的QuickTime影片。
热点可嵌入全景,当选中它们时可以调用一些动作,例如移到全景图的另一个热点。
对象
相比于在一个地点以不同的角度向外拍摄而成的全景图,对象是指是对同一物体在不同视角进行拍摄。最简单的对象全景图是在单排上捕捉的,通常在一个物体的赤道方向上抓取拍摄。这通常会使用一个旋转的转盘使拍摄变得便利。对象被放置在转盘上,并且通过固定在三脚架上的相机以平均递增的角度进行拍摄(通常是10 °)。
捕捉一个多行拍摄的对象影片则需要更精细的设置,因为相机必须在对象的赤道的上下方倾斜一定的角度。
图像的来源不必须是照片,也可以用3D效果图或者图纸。
更多请参考:https://zh.wikipedia.org/wiki/QuickTime_VR
参考:http://szeching.com/how-to-make-cardboard-vr-app-with-unity3d/
相关文章推荐
- 【转】Unity协程(Coroutine)原理深入剖析
- Unity拖影效果
- unity标准材质球动态改值和共用材质不同设置问题
- Unity3D添加天空盒子
- Unity3D手游开发实践
- unity3d ugui 图片点击与拖动同存互不影响
- 【虚拟现实】Unity3D+VR的实现
- Unity+NGUI性能优化方法总结
- 使用脚本将Unity的ogg音效全部改为2d音效
- Unity3D_NGUI_性能优化实践_CPU卡顿
- unity<二>基础
- Unity 4.x 各版本IOS IL2CPP对比
- [转]10 Awesome Indicator Applets for Ubuntu’s Unity Desktop
- 【Unity】Socket 同步与异步
- [shader]旋转,偏移,焚毁
- unity android 退出异常 google play game services
- unity(一)基础
- Unity中Mesh分解与边缘高亮加上深度检测
- Unity中的网格与材质球合并
- [置顶] 在unity中UUGI的一些使用和操作