github unity 图片切换效果_Unity 制作并播放360° 3D 视频

26e51a4f8d49283cb97a985147e8bb76.png

首先清楚以下几个概念,明白我们要做的事情是什么。

3D 电影是怎么实现的?​www.zhihu.com
2f543c29fc6c1a0d173dea3d3b631785.png
在讨论全景视频的未来之前,我们先搞清楚全景视频是如何实现的 | 雷锋网​www.leiphone.com
349dd985aa1e6a7d90cba7d8f58c7514.png

弄懂了之后,我们要选择一个用来播放的设备,头盔,手机,都行。

我这里是一个VIVE Foucs Plus

使用的Unity版本 2019.1.2f1,理论上2018.3之后的版本都能用,因为我们要使用Unity的Package Manager,这是2018.3之后添加的功能,这个Package Manager包含了一些Unity官方提供的插件,诸如渲染,textpro,ARKit,ARCore等等功能的支持。

1756ddfc1fdb835c6f771d01918048c5.png

在菜单栏中的Window中找到

46906922890b6b9806a810b70f3caadb.png

打开PackageManager,在上方的选项里选择 All Package,Advanced选项里把preview package也勾选上,等待左下方的Loading结束就会有

462e12f49052940156e7c29c4d180653.png

这个插件在2018.3之前还是可以在Assets Store中下载的,不过是老版本的插件,当然,同样可以使用,下面是Recorder的manual

https://docs.unity3d.com/Packages/com.unity.recorder@2.0/manual/index.html​docs.unity3d.com

f861cbd9182ab85d584457a373457b05.png

安装了recorder之后,在上图位置打开recorder的窗口

3a7ed632410f86cc7ee11ff8bc8fcc5b.png

然后阅读上方的文档,文档中对每一个选项都有说明。

这个recorder能做的东西很多,可以生成MP4和WEBM的视频,还有PNG,JEPG格式的序列帧图片,还有Animation Clip和动图GIF,根据你的需要进行选择

fbb74d0ef10486dae98d7dd384a78123.png

既然我们要录制全景视频,那么先创建一个Movie的recorder

71f3f1bacf74127ef52a54c4209d9d41.png

Format是格式,包含mp4和webm

FileName是文件名,下方Path处选择存放地址

Take Number就是录制次数,想想电影片场中场记在每次拍摄开始前使用的东西,啪的一声,拍摄就开始了。

Capture是选择画面源,有Game视图,目标相机,360视频等等

output resolution是输出分辨率

capture audio是抓取音频

quality是视频质量

要制作360的视频那我们就选择360视频。

cb345e33689ecf53cc510a6ae77eb87f.png

source是目标相机,可以选也可以直接使用MainCamera,注意使用MainCamera要确保场景中你需要使用的相机的Tag是MainCamera,否则会录错相机或者报错空指针。

输出分辨率的两个数字必须是2的指数

stereo勾选之后,出来的视频是带有立体信息的,这个立体信息是画面上下分屏,并且稍微有些错位的方式,错位的程度就是下面的0.065,这个是IPD也就是瞳距。

设置完点击Recorder的Start Rocording

fa5cde39a9b7b51e8034a1e6fe02be49.png

如果场景没有Play的话,点击录制会自动进入Play模式

简单搭一个场景,尽量让物体理相机近一些,相机的四周都摆满物体,录制大概300帧左右,就会有10秒左右的视频。

我渲染出来的视频的截图

494c6df390dbff1ab1753e6a13c066c5.png

注意看我划红线的地方,上下画面是有小幅度的偏移的,这样会有3D的效果,具体原理文章开头有文章。

这种上下分的视频一般是上面是左眼的画面,下面是右眼的画面。

之后我们需要Unity的一个小项目

Unity-Technologies/SkyboxPanoramicShader​github.com
cc73a43a85bc6f5f8e6383d0c53468a1.png

不得不说,这么好的功能为什么不内置呢?

2cb46fb926b76522396178ab88e4827b.png

这个包很简单,一个脚本一个Shader,实现360视频的3D播放。

在工程中新建一个文件夹Editor,把SkyboxPanoramicBetaShaderGUI.cs这个文件放在Editor下面。

右键资源面板新建一个RenderTexture

ebb0298acfdaffaa220107d7b46c0a49.png

为了不让视频错位,上图中Size要和视频分辨率一样。

右键Skybox-PanoramicBeta.shader,新建一个Material。设置如下,把刚新建好的RenderTexture拖拽到这个Material上

3DLayout下,Side by side是左右分的视频源,Over Under是上下分的视频源。

0d0643e56348c72989e7d3ba3c34d653.png

打开Unity 的 Window-> Lighting面板

2ae13059cf3e2a71b0d136975c19fe77.png

把这个新建的Material拖拽到Skybox material上。如上图所示。

最后在场景中,Hierarchy面板中右键,新建VideoPlayer

e84300eba788187fcd037de127c55722.png

VideoClip是之前我们录制好的视频,renderMode选择RenderTexture,把刚才我们调整过Size的RenderTuxture拖拽到这里。

别忘了在Player Setting中勾选VR 支持,选择一个适合的SDK,我使用VIVE就选了这个,SDK也是VIVE官方提供的。

47f0a7c3ea91d0f08b4c4c364210a34a.png

然后点击播放,就能看出效果了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值