我们从Unity 5.6开始引入了全新的Video Player组件,也收到了很多开发者关于如何将360全景视频整合到Unity工程的问题。过去的几个月我们逐步改善了此前推荐的工作流程,并制作了高质量着色器来实现这一目标。今天这篇文章将为大家分享我们的成果,在Unity 5.6及以上版本中,可以通过着色器更加方便地将360全景视频加入Unity工程。

温馨提示,该着色器目前仍为beta版,但已相当完善,可以用于正式项目。

150215ntts3uic0i239ky3.png

整合过程非常简单直接,只要将任意Unity支持的带有360°或180°全景或立方贴图(Cubemap)内容的视频文件(如.mp4文件)作为资源导入Unity工程,即可通过Video Player组件进行播放。关键是将Video Player组件绑定到与视频尺寸一致的渲染纹理,然后将此纹理关联到使用了全新Skybox/PanoramicBeta着色器的材质,并将该材质用作场景天空盒的材质。

150227hp3kyg13qkqgkl6k.png

现在可以看到场景中的天空盒背景就是全景视频内容,在Player Settings中勾选Virtual Reality Support,然后带上VR头盔,就可以直接进入全景视频之中。如果使用3D的360全景内容,可以利用Skybox/PanoramicBeta的3D设置,来实现更加身临其境的体验。

Skybox/PanoramicBeta着色器预计将在Unity 2017.3正式版中与大家见面,您可以点击此处抢先体验。


Video Player设置


导入视频文件至Unity工程后,只需将视频文件拖拽至场景中的空白位置,Unity会自动创建Video Player组件。默认情况下,视频会按默认相机视图全屏播放,可以利用Render Texture组件来控制视频渲染方式。

150254mxhyaamxnnt262rm.png

回到Video Player组件,将Render Mode设为新建的Render Texture,并将该Render Texture文件拖拽至Target Texture字段。现在运行,游戏视图不会显示内容,但可以看到Render Tuxture上正在更新视频帧。

150306ii1aaiv000ggrhrg.png

创建天空盒材质


要将全景视频渲染为场景背景,可以利用视频代替默认的天空盒。新建材质,将其着色器设为Skybox/PanoramicBeta,然后将Render Texture文件拖拽至材质的纹理字段。为确保视频正常显示,需要针对视频内容的类型选择映射方式。对于Cubemap型内容,将Mapping设为“6 Frames Layout”,而等距长圆柱类型则需选择“Latitude Longitude Layout”。

150321laa2natinj83a28a.png

将视频渲染到天空盒


最后一步是在光照面板中,将刚刚新建的天空盒材质赋给Environment下的第一个字段Skybox Material。现在运行就可以看到天空盒已显示视频内容。旋转场景相机也会改变显示的视频方向。

150344yty28ts780sz8s5h.png

今天的教程就为大家介绍到这里,我们还会为大家分享更多Unity最新最实用的功能详解与示例在Unity官方中文社区(unitychina.cn),请保持关注!

Unity, 教程, 集成, 360全景, 视频锐亚教育

锐亚教育 锐亚科技 unity unity教程