启用 VR
入门 程序员
本页说明如何为游戏添加对 Oculus Rift 和 Vive 设备的支持。Stride 目前尚不支持其他 VR 设备。
在资产视图(默认位于底部窗格)中,双击**图形合成器(Graphics Compositor)**资产。

图形合成器编辑器随即打开。
在图形合成器编辑器中,选择**前向渲染器(forward renderer)**节点。

在属性网格(默认位于右侧)中,展开 VR Settings。

在 Required APIs 旁边,单击
(添加)。Game Studio 会向列表中添加一个新的 API。

在 Item 下拉菜单中,选择你的游戏要支持的 VR API。

API 说明 Oculus 支持 Oculus Rift 设备(对 Oculus Rift 的支持最好) OpenVR 支持 Vive 和 Oculus Rift 设备(对 Vive 的支持最好) Dummy 在屏幕上使用两个摄像机(每只眼睛一个)显示游戏,而不是在 VR 设备中显示。这主要用于开发。要在 Game Studio 场景编辑器中显示 Dummy 视图,请确保编辑器已连接到前向渲染器。 重复步骤 4 和 5,按需添加任意数量的 API。
确保列表顺序正确。游戏运行时,会按列表顺序尝试使用设备。例如,如果第一项是 Dummy,游戏将不使用任何 VR 设备。如果最后一项是 Dummy,游戏只会在没有可用 VR 设备时使用它。
要更改顺序,请更改每个项中选择的 VR 设备。
Tip
虽然 OpenVR API 同时支持 Vive 和 Oculus Rift 设备,但 Oculus API 对 Oculus Rift 提供更好的支持。因此,在大多数情况下,我们建议按以下顺序排列列表:
项 0:Oculus
项 1:OpenVR
这意味着如果连接了 Oculus Rift 设备,游戏将使用 Oculus API;如果连接了其他设备(例如 Vive),游戏将使用 OpenVR API。
启用 VRRendererSettings。

你的游戏现在已准备好使用 VR。
Note
更改 API 后,你需要重新加载项目(文件 > 重新加载项目 / File > Reload project),更改才会在运行时生效。
VR 属性
| 属性 | 说明 |
|---|---|
| Ignore camera rotation | 禁用 VR 设备以外的输入所引起的摄像机移动,有助于减少 VR 晕动症 |
| Resolution scale | VR 设备中显示的图像分辨率。分辨率越高,图像越清晰,但对 GPU 的要求也越高。 |
多重采样抗锯齿
由于走样(锯齿)伪影在 VR 中更加明显,我们建议你在前向渲染器属性(VR 设置上方)中启用 MSAA(多重采样抗锯齿)。

Note
Direct3D 11 或更低版本不支持 MSAA。
禁用屏幕同步
为了获得最佳性能,VR 游戏需要以 90 FPS 运行。这意味着你必须关闭与显示器的同步。
目前,这需要通过脚本完成。我们建议你在 IsFixedTimeStep 中使用 IsDrawDesynchronized。
using System;
using Stride.Engine;
namespace VRSandbox
{
class VRSandboxApp
{
static void Main(string[] args)
{
using (var game = new Game())
{
//VR 需要以 90 fps 运行,必须禁用垂直同步,绘制必须不同步
//如果使用具有不规则移动的角色控制器,你可能也想将物理时间步长设置为 90 fps,但请尽量避免这样做!尽可能使用运动学(Kinematic)刚体。
game.IsFixedTimeStep = true;
game.IsDrawDesynchronized = true;
game.GraphicsDeviceManager.SynchronizeWithVerticalRetrace = false;
game.TargetElapsedTime = TimeSpan.FromSeconds(1 / 90.0f);
game.Run();
}
}
}
}