Unity + Oculus Rift:展示双眼?
Unity + Oculus Rift: show both eyes?
我希望能够在 Unity 5 中看到双眼的输出。使用最新的 OVR 插件,unity 只显示一只眼睛。此外,它似乎甚至在头显中呈现单视场。
我想要一个示例,它可以让我在左眼上显示一个蓝色矩形,在右眼上显示一个红色矩形,并在主监视器上看到两者(蓝色和红色)。
建议?
不久前解决了这个问题。基本上,您每帧获得 2 次渲染和 1 次更新。
(伪代码)
int Eye=0;
Update()
{
// reset to left eye for this frame
Eye=0;
}
Render()
{
// generate different content based on which view
// (eye, editor game view) is being rendering
switch(Eye){
case 0: renderLeft(); break;
case 1: renderRight(); break;
default: renderSomethingInEditor();
}
// increment to next view, will be used by next render in this frame.
++Eye;
}
立体渲染要求每只眼睛的 view/projection 矩阵不同。眼睛被有效地视为单独的相机,稍微偏移以反映用户的 IPD。所以,游戏循环是这样运行的:
- 更新()所有游戏对象
- 为左眼渲染()一切
- Render() 右眼的一切
- Render() 主显示器上的游戏视图(如果启用)。
- 转到 1
您将总是在 VR 中每次更新至少两次渲染。
我希望能够在 Unity 5 中看到双眼的输出。使用最新的 OVR 插件,unity 只显示一只眼睛。此外,它似乎甚至在头显中呈现单视场。
我想要一个示例,它可以让我在左眼上显示一个蓝色矩形,在右眼上显示一个红色矩形,并在主监视器上看到两者(蓝色和红色)。
建议?
不久前解决了这个问题。基本上,您每帧获得 2 次渲染和 1 次更新。
(伪代码)
int Eye=0;
Update()
{
// reset to left eye for this frame
Eye=0;
}
Render()
{
// generate different content based on which view
// (eye, editor game view) is being rendering
switch(Eye){
case 0: renderLeft(); break;
case 1: renderRight(); break;
default: renderSomethingInEditor();
}
// increment to next view, will be used by next render in this frame.
++Eye;
}
立体渲染要求每只眼睛的 view/projection 矩阵不同。眼睛被有效地视为单独的相机,稍微偏移以反映用户的 IPD。所以,游戏循环是这样运行的:
- 更新()所有游戏对象
- 为左眼渲染()一切
- Render() 右眼的一切
- Render() 主显示器上的游戏视图(如果启用)。
- 转到 1
您将总是在 VR 中每次更新至少两次渲染。