这一节我介绍的主要内容有
- SteamVR渲染机制
用Unity做游戏开发的核心之一就是图形渲染,做VR开发当然也是一样,在这一节,我们就来看看SteamVR的图形渲染原理。SteamVR_Render.cs是SteamVR图形渲染的核心,该类位于Scripts文件夹中。接下来我来详细分析一下这个类。
下面是该脚本的OnEnable()方法
void OnEnable()
{
StartCoroutine("RenderLoop"); //启动渲染
SteamVR_Utils.Event.Listen("input_focus", OnInputFocus); //输入监听
SteamVR_Utils.Event.Listen("Quit", OnQuit); //退出监听
SteamVR_Utils.Event.Listen("RequestScreenshot", OnRequestScreenshot); //截屏监听
var vr = SteamVR.instance; //获取SteamVR实例,用来判断头显设备是否安装好
if (vr == null)
{
enabled = false;
return;
}
/*
public enum EVRScreenshotType
{
None = 0,
Mono = 1,
Stereo = 2,
Cubemap = 3,
MonoPanorama = 4,
StereoPanorama = 5,
}
EVRScreenshotType.StereoPanorama为默认的截屏类型
*/
var types = new EVRScreenshotType[] { EVRScreenshotType.StereoPanorama};
OpenVR.Screenshots.HookScreenshot(types); //初始化截屏,设置截屏类型