MobileVRInterface

Наследует: XRInterface < RefCounted < Object

Стандартная реализация мобильной виртуальной реальности.

Описание

Это общая реализация мобильной VR, где вам нужно предоставить данные о телефоне и используемом HMD. Она не опирается на какой-либо существующий фреймворк. Это самый базовый интерфейс, который у нас есть. Для наилучшего эффекта вам нужен мобильный телефон с гироскопом и акселерометром.

Обратите внимание, что даже если нет позиционного отслеживания, камера будет считать, что гарнитура находится на высоте 1,85 метра. Вы можете изменить это, установив eye_height.

Инициализировать этот интерфейс можно следующим образом:

var interface = XRServer.find_interface("Native mobile")
if interface and interface.initialize():
    get_viewport().use_xr = true

Примечание: Для Android должны быть включены ProjectSettings.input_devices/sensors/enable_accelerometer, ProjectSettings.input_devices/sensors/enable_gravity, ProjectSettings.input_devices/sensors/enable_gyroscope и ProjectSettings.input_devices/sensors/enable_magnetometer.

Свойства

float

display_to_lens

4.0

float

display_width

14.5

float

eye_height

1.85

float

iod

6.0

float

k1

0.215

float

k2

0.215

Rect2

offset_rect

Rect2(0, 0, 1, 1)

float

oversample

1.5

float

vrs_min_radius

20.0

float

vrs_strength

1.0

PlayAreaMode

xr_play_area_mode

1 (overrides XRInterface)


Описания свойств

float display_to_lens = 4.0 🔗

  • void set_display_to_lens(value: float)

  • float get_display_to_lens()

Расстояние между дисплеем и линзами внутри устройства в сантиметрах.


float display_width = 14.5 🔗

  • void set_display_width(value: float)

  • float get_display_width()

Ширина дисплея в сантиметрах.


float eye_height = 1.85 🔗

  • void set_eye_height(value: float)

  • float get_eye_height()

Высота, на которой расположена камера по отношению к земле (т. е. узел XROrigin3D).


float iod = 6.0 🔗

Межзрачковое расстояние, также известное как межзрачковое расстояние. Расстояние между зрачками левого и правого глаза.


float k1 = 0.215 🔗

Коэффициент линзы k1 — одна из двух констант, определяющих силу используемой линзы и напрямую влияющих на эффект искажения линзы.


float k2 = 0.215 🔗

Коэффициент линзы k2, см. k1.


Rect2 offset_rect = Rect2(0, 0, 1, 1) 🔗

  • void set_offset_rect(value: Rect2)

  • Rect2 get_offset_rect()

Установите смещение прямоугольника относительно области, которая визуализируется. Длина 1 представляет всю область визуализации на этой оси.


float oversample = 1.5 🔗

  • void set_oversample(value: float)

  • float get_oversample()

Настройка передискретизации. Из-за искажения объектива нам приходится визуализировать наши буферы с более высоким разрешением, чем может изначально обработать экран. Значение между 1,5 и 2,0 часто дает хорошие результаты, но за счет производительности.


float vrs_min_radius = 20.0 🔗

  • void set_vrs_min_radius(value: float)

  • float get_vrs_min_radius()

Минимальный радиус вокруг точки фокусировки, где гарантируется полное качество, если VRS используется как процент от размера экрана.

Примечание: Только для Mobile и Forward+ рендереров. Требуется, чтобы Viewport.vrs_mode был установлен на Viewport.VRS_XR.


float vrs_strength = 1.0 🔗

  • void set_vrs_strength(value: float)

  • float get_vrs_strength()

Сила, используемая для расчета карты плотности VRS. Чем больше это значение, тем заметнее VRS. Это повышает производительность за счет качества.

Примечание: Только для Mobile и Forward+ рендереров. Требуется, чтобы Viewport.vrs_mode был установлен на Viewport.VRS_XR.