在unity中添加360度视频
由misslivirose在2016年10月4日发布
由于360度视频和计算机生成的交互内容之间的界限很模糊,我发现自己经常被问的一件事就是——怎样在一个unity的场景中添加一个360度的视频回放。这个快速教程将通过一个便捷方式在unity游戏引擎中向场景里添加360度的、2D视频内容(例如:这种类型的视频由Gear 360或者Ricoh Theta camera理光360度全景摄像数码相机摄制)
准备视频文件
Unity通过引用Movie Texture 类支持视屏回放,并且允许你通过QuickTime去导入文件类型为 .mov, .mpg, .mpeg, .mp4, .avi, and .asf的文件。如果你还没有安装,你可以在窗口中获取QuickTime 来导入你的360度视频文件至你项目的Assets文件夹。我使用一个我在Gear 360中拍摄并上传到YouTube的简单视频,这个视频以 .mp4的文件类型在我的S6 Edge手机上的Gear 360 app上被缝合。你也想使用视频编辑工具来水平镜像你的视频片段,就像我们的shader会翻转视频那样,这是一个最简单的解决方案。当你有了你的缝合视频片段,是unity支持的视频文件格式,并且已经被镜像了,你就可以通过using Assets > Import New Asset将视频导入你的unity工程。
创建我们播放视频的球体
创建视频球体需要三个步骤,为了能够支持视频播放我们需要将他们组合起来。默认情况下,unity将指派我们的视频作为一个Movie Texture object,所以我们不需要在这里做任何特殊的事情。我需要做的事情是:
1、创建一个球体环绕我们的相机,这个球体将作为我们视频播放的表面。
2、为我们的 movie texture创建一个新的材质,使用自定义shader来改变球体内部视频的播放。
3、为球体写一个脚本来播放movie texture。
当你创建球体,给它一个较大的scale (我使用的是20,20,20)再放置它,便于中心点始终是我们的相机。如果你现在运行你的应用,你会发现unity在默认状态下不会渲染球体的内表面,我们需要在我们创建的新材质上通过修改它的shader来解决这个问题。
在Assets 文件夹里,我们右击并且创建新文件夹:
1、Assets > Create > Shader > Standard Surface Shader,命名为“InvertNorm”
|