Unity + Oculus Rift: показать оба глаза?

Я хотел бы иметь возможность видеть результат для обоих глаз в Unity 5. Используя последний плагин OVR, единство показывает только один глаз. Кроме того, он выглядит моноскопическим даже для гарнитуры.

Мне бы понравился пример, который позволил бы мне показать синий прямоугольник на левом глазу, красный справа и увидеть оба (синий и красный) на основном мониторе.

Предложения?


person 3Dave    schedule 14.09.2015    source источник


Ответы (1)


Решил это некоторое время назад. Обычно вы получаете 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;
}

Стерео-рендеринг требует, чтобы матрицы вида / проекции были разными для каждого глаза. Глаза фактически рассматриваются как отдельные камеры, которые немного смещены, чтобы отражать IPD пользователя. Итак, игровой цикл выглядит так:

  1. Update () все GameObjects
  2. Render () все для левого глаза
  3. Render () все для правого глаза
  4. Render () Просмотр игры на основном дисплее, если он включен.
  5. Перейти 1

Вы будете всегда получать по крайней мере два рендера за обновление в VR.

person 3Dave    schedule 13.05.2016