|
今年1月26日Unity在博客更新里宣布其新版本Unity 2018.1 开始支持立体360度图片和视频捕捉的新功能。
此功能基于谷歌的全方位立体(Omni-directional Stereo, ODS) 技术,在编辑器和PC单机播放器上均支持用户通过Unity本身的图像加工流程里渲染生成立方体地图。生成的立方体可以进一步被转化成立体全景地图,用于在360度媒体上展示播放。
先来一张大神使用unity做的全景视频&全景图,给大家欣赏一下:
来自VeeR环球VR内容社区
那么现在我简单讲解一番这个新功能并在之前发布了立体内容抓取和转化功能的API,如下:
1. public bool RenderToCubemap(Cubemap cubemap, int faceMask = 63)
2. public void ConvertToEquirect(RenderTexture equirect, Camera.MonoOrStereoscopicEye eye)
这篇回答意在对使用步骤进行更详细的分解。这里我使用安装Unity时的案例项目,你可以把它选作一个Component.
现在我们就可以开始使用这项功能了:
1. 在你的项目里启动以下三个渲染质地:
将cubemap_left和cubemap_right的参数如下图所示设置:
然后,将equirect相关选项如下设置:
2. 在API中找到以下脚本,将其附加到系统的主相机上。
using UnityEngine;
using UnityEngine.Rendering;
//attach this script to your camera object
public class CreateStereoCubemaps : MonoBehaviour
{
public RenderTexture cubemapLeft;
public RenderTexture cubemapRight;
public RenderTexture equirect;
public bool renderStereo = true;
public float stereoSeparation = 0.064f;
void LateUpdate()
{
Camera cam = GetComponent();
if (cam == null)
{
cam = GetComponentInParent();
}
if (cam == null)
{
Debug.Log(“stereo 360 capture node has no camera or parent camera”);
}
if (renderStereo)
{
cam.stereoSeparation = stereoSeparation;
cam.RenderToCubemap(cubemapLeft, 63, Camera.MonoOrStereoscopicEye.Left);
cam.RenderToCubemap(cubemapRight, 63, Camera.MonoOrStereoscopicEye.Right);
}
else
{
cam.RenderToCubemap(cubemapLeft, 63, Camera.MonoOrStereoscopicEye.Mono);
}
//optional: convert cubemaps to equirect
if (equirect == null)
{
return;
}
if (renderStereo)
{
cubemapLeft.ConvertToEquirect(equirect, Camera.MonoOrStereoscopicEye.Left);
cubemapRight.ConvertToEquirect(equirect, Camera.MonoOrStereoscopicEye.Right);
}
else
{
cubemapLeft.ConvertToEquirect(equirect, Camera.MonoOrStereoscopicEye.Mono);
}
}
}
3. 选取主相机,用检视器中的渲染质地来创建立体的立方体地图
4. 运行脚本。Equirect此时已经记录下了主相机所捕捉到的立体内容。
创建一个新的UI元素RawImage来跟踪Equirect的产出,如下面这个屏幕中的左上角方块所示:记得把Equirect拖到RawImage的质地属性。然后就全部完成了,现在我们可以播放一遍录制出来的整个场景了!
Unity推荐使用Unity Frame Recorder插件来作为导出媒介。此插件一帧一帧输出渲染质地,然后你可以使用常规的视频编辑软件来把这些帧连接成360度的视频。
而Unity’s 360 Video Playback插件可以用来在Unity里回放全景视频。
此外,XR设置中的360立体捕捉选项,可以用来控制你的Unity项目是否支持360度着色器, 给Unity的游戏开发者们留足了想象空间,因为这样他们就可以让玩家进行第一人称的全景游戏录屏了!
这项新功能目前对于部分开发者的自定义着色器还未必能运行得很好,可能会导致360度拍摄异常。也期待Unity在这方面的进展。
如果你学会了,也可以同样制作属于自己的VR视频或者图片了!然后可以上传到https://veervr.tv/creator?utm_source=zhihu&utm_content=creatorupload
这个网站,里面有一大堆来自全世界的VR创造者的作品,可以进行互动以及讨论~ |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|