Впервые на русском: Документация Unity для разработчиков. Начало работы с VR Development. Полезная информация для разработки виртуальной реальности
Продолжаем публикацию эксклюзивной информации для разработчиков Unity. Новый раздел посвящён полезной информации для разработки виртуальной реальности.
Документация Unity для разработчиков:
- Обзор виртуальной реальности
- Проекты сэмплов для виртуальной реальности
- Начало работы с VR Development. Основы
- Начало работы с VR Development. Создание первого проекта виртуальной реальности
- Начало работы с VR Development. Полезная информация для разработки виртуальной реальности
Хотя разработка виртуальной реальности очень похожа на стандартную разработку в Unity, есть некоторые отличия, о которых нужно знать.
Частота кадров в редакторе
Если вы просматриваете свой проект в редакторе, имейте в виду, что у вас может быть некоторое отставание и искажение, так как ваш компьютер дважды воспроизводит один и тот же контент. Рендеринг Unity IDE также требует некоторых дополнительных расходов, поэтому лучше также иногда проверять производительность на целевых устройствах, создавая сборку своего проекта и запуская его напрямую.
Движение камеры
Вы не можете перемещать камеру виртуальной реальности непосредственно в Unity. Если вы хотите изменить положение и поворот, вам необходимо убедиться, что он является родным для другого GameObject и применить изменения к первоначальной трансформации.

Содержимое внутри камер
Например, посмотрите в сценариях Flyer и Maze проекта VR Samples, как мы перемещаем камеру внутри сцены.
Узлы камер
Unity не создаёт камеры с левым и правым глазом. Если вы хотите получить позиции этих узлов, вы должны использовать класс InputTracking.
Если вы хотите получить отдельные позиции глаз внутри сцены – это возможно, по только в рамках тестирования – используйте образец сценария ниже и добавьте его к своей камере.
using UnityEngine;
using UnityEngine.VR;
public class UpdateEyeAnchors : MonoBehaviour
{
GameObject[] eyes = new GameObject[2];
string[] eyeAnchorNames = { «LeftEyeAnchor», «RightEyeAnchor» };
void Update()
{
for (int i = 0; i < 2; ++i)
{
// If the eye anchor is no longer a child of us, don’t use it
if (eyes[i] != null && eyes[i].transform.parent != transform)
{
eyes[i] = null;
}
// If we don’t have an eye anchor, try to find one or create one
if (eyes[i] == null)
{
Transform t = transform.Find(eyeAnchorNames[i]);
if (t)
eyes[i] = t.gameObject;
if (eyes[i] == null)
{
eyes[i] = new GameObject(eyeAnchorNames[i]);
eyes[i].transform.parent = gameObject.transform;
}
}
// Update the eye transform
eyes[i].transform.localPosition = InputTracking.GetLocalPosition((VRNode)i);
eyes[i].transform.localRotation = InputTracking.GetLocalRotation((VRNode)i);
}
}
}
Эффекты изображения в виртуальной реальности
Многие эффекты изображения будут слишком «дорогими» для использования в ваших проектах виртуальной реальности. Поскольку вы рендерите свою сцену дважды – один раз для каждого глаза – большинство эффектов изображения, которые создаются за счёт производительности, могут стать слишком «дорогостоящими» для использования вообще из-за их влияния на частоту кадров.
Поскольку виртуальная реальность представляет глаза пользователя в виртуальном пространстве, некоторые эффекты изображения не будут иметь смысла в виртуальной реальности. Например, глубина поля, размытия и вспышки объективов обычно не имеют смысла, поскольку они не рассматриваются в реальной жизни. Если шлем виртуальной реальности в конечном итоге поддерживает отслеживание глаз, глубина поля может иметь смысл.
Некоторые эффекты могут быть использованы: Anti-Aliasing может быть полезным (особенно при низком разрешении устройств виртуальной реальности), Color Grading можно определенно использовать (см. блог Unity для дополнительной информации), а Bloom может работать в некоторых играх, поэтому лучше всего – экспериментировать и смотреть, можно ли использовать некоторые эффекты в вашей игре.
В то время как Unity поставляет некоторые подходящие эффекты изображения, которые доступны сразу (Assets > Import Package > Effects), в Asset Store также есть много дополнительных отличных эффектов изображения, таких как Colorful, Chromatica, Amplify Color и многие другие.
Шкала рендеринга
В зависимости от сложности вашей сцены виртуальной реальности и используемого вами оборудования вы можете изменить масштаб рендеринга. Это контролирует пропорции texel:pix перед коррекцией объектива, что означает, что вы можете балансировать между производительностью для резкости.
Это может быть установлено через код и доступно через http://docs.unity3d.com/ScriptReference/VR.VRSettings-renderScale.html. Настройки можно легко изменить, используя следующий скрипт:
using UnityEngine;
using System.Collections;
using UnityEngine.VR;
namespace VRStandardAssets.Examples
{
public class ExampleRenderScale : MonoBehaviour
{
[SerializeField] private float m_RenderScale = 1f; //The render scale. Higher numbers = better quality, but trades performance
void Start ()
{
VRSettings.renderScale = m_RenderScale;
}
}
}
Вы можете увидеть базовый пример этого в наших VR Samples – он используется в Scenes/Examples/RenderScale. Он также используется в сцене MainMenu.
Пример изменения шкалы рендеринга
Масштаб рендеринга по умолчанию в Unity равен 1.0:

Если мы увеличим это до 1,5, вы увидите, что предмет выглядит намного более четким:

И, наконец, если мы уменьшим шкалу рендеринга до 0,5, вы можете увидеть, что теперь предмет имеет намного больше пикселей:

В зависимости от того, насколько хорошо ваша сцена работает, вы можете снизить масштаб рендеринга для повышения производительности или повысить его, чтобы увеличить визуальную резкость.
Теперь вы должны ознакомиться с основами интеграции виртуальной реальности в Unity, как применять движение камеры и как использовать эффекты изображения по сравнению с не-VR-разработкой.
Примечание: Данный материал представлен для ознакомления, при перепечатывании ссылка на оригинал обязательна. Если вы хотите принять участие в помощи проекту, пишите на [email protected]
Если вы разработчик и вы хотите продолжить свою карьеру в лучших компаниях России, пишите на [email protected] с пометкой «Работа мечты», и мы поможем вам с этим.
VR Geek » Впервые на русском: Документация Unity для разработчиков. Начало работы с VR Development. Полезная информация для разработки виртуальной реальности

