OpenXRCompositionLayer
Экспериментальное: This class may be changed or removed in future versions.
Наследует: Node3D < Node < Object
Наследуется от: OpenXRCompositionLayerCylinder, OpenXRCompositionLayerEquirect, OpenXRCompositionLayerQuad
Родительский класс всех узлов композиционного слоя OpenXR.
Описание
Слои композиции позволяют отображать 2D-окна просмотра внутри гарнитуры с помощью XR-композитора с помощью специальных проекций, которые сохраняют свое качество. Это позволяет визуализировать чистый текст, сохраняя при этом исходное разрешение слоя.
Примечание: Если среда выполнения OpenXR не поддерживает заданный тип слоя композиции, можно сгенерировать резервную сетку с помощью ViewportTexture, чтобы эмулировать слой композиции.
Свойства
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
Методы
intersects_ray(origin: Vector3, direction: Vector3) const |
|
is_natively_supported() const |
Перечисления
enum Filter: 🔗
Filter FILTER_NEAREST = 0
При выборке текстуры следует выполнять фильтрацию ближайшего соседа.
Filter FILTER_LINEAR = 1
Выполняйте линейную фильтрацию при выборке текстуры.
Filter FILTER_CUBIC = 2
При выборке текстуры выполняйте кубическую фильтрацию.
enum MipmapMode: 🔗
MipmapMode MIPMAP_MODE_DISABLED = 0
Отключить MIP-текстурирование.
Примечание: MIP-текстурирование можно отключить только в режиме совместимости.
MipmapMode MIPMAP_MODE_NEAREST = 1
Используйте mipmap ближайшего разрешения.
MipmapMode MIPMAP_MODE_LINEAR = 2
Использовать линейную интерполяцию двух MIP-карт ближайшего разрешения.
enum Wrap: 🔗
Wrap WRAP_CLAMP_TO_BORDER = 0
Закрепите текстуру по указанному цвету границы.
Wrap WRAP_CLAMP_TO_EDGE = 1
Закрепите текстуру по цвету ее кромки.
Wrap WRAP_REPEAT = 2
Повторяйте текстуру бесконечно.
Wrap WRAP_MIRRORED_REPEAT = 3
Повторяйте текстуру бесконечно, зеркально отображая ее при каждом повторе.
Wrap WRAP_MIRROR_CLAMP_TO_EDGE = 4
Отразите текстуру один раз, а затем прикрепите её к цвету края.
Примечание: Этот режим обтекания недоступен в рендере совместимости.
enum Swizzle: 🔗
Swizzle SWIZZLE_RED = 0
Сопоставляет цветовой канал со значением красного канала.
Swizzle SWIZZLE_GREEN = 1
Сопоставляет цветовой канал со значением зеленого канала.
Swizzle SWIZZLE_BLUE = 2
Сопоставляет цветовой канал со значением синего канала.
Swizzle SWIZZLE_ALPHA = 3
Сопоставляет цветовой канал со значением альфа-канала.
Swizzle SWIZZLE_ZERO = 4
Сопоставляет цветовой канал со значением ноль.
Swizzle SWIZZLE_ONE = 5
Сопоставляет цветовой канал со значением единицы.
Описания свойств
Позволяет смешивать слой с использованием его альфа-канала.
Можно комбинировать с Viewport.transparent_bg, чтобы придать слою прозрачный фон.
Vector2i android_surface_size = Vector2i(1024, 1024) 🔗
Размер создаваемой поверхности Android, если включен use_android_surface.
bool enable_hole_punch = false 🔗
Позволяет использовать технику, называемую «дырокол», которая позволяет размещать слой композиции за основным проекционным слоем (т. е. устанавливать sort_order на отрицательное значение), одновременно «пробивая дыру» через все, что визуализируется Godot, так что слой все еще виден.
Это можно использовать для создания иллюзии того, что слой композиции существует в том же трехмерном пространстве, что и все, что визуализируется Godot, позволяя объектам казаться проходящими как позади, так и перед слоем композиции.
SubViewport layer_viewport 🔗
void set_layer_viewport(value: SubViewport)
SubViewport get_layer_viewport()
SubViewport для рендеринга на слое композиции.
bool protected_content = false 🔗
Если эта функция включена, цепочка обмена OpenXR будет создана с флагом XR_SWAPCHAIN_CREATE_PROTECTED_CONTENT_BIT, который защитит её содержимое от доступа процессора.
При использовании с Android Surface это может позволить отображать контент с DRM-защитой и вступит в силу только при первом создании Surface; последующие изменения этого свойства не будут иметь никакого эффекта.
Порядок сортировки для этого слоя композиции. Более высокие числа будут показаны перед более низкими числами.
Примечание: Это не будет иметь никакого эффекта, если используется резервная сетка.
Swizzle swapchain_state_alpha_swizzle = 3 🔗
Значение swizzle для альфа-канала состояния swapchain.
Примечание: Это свойство влияет только на устройства, которые поддерживают расширения OpenXR XR_FB_swapchain_update_state OpenGLES/Vulkan.
Swizzle swapchain_state_blue_swizzle = 2 🔗
Значение swizzle для синего канала состояния swapchain.
Примечание: Это свойство влияет только на устройства, которые поддерживают расширения OpenXR XR_FB_swapchain_update_state OpenGLES/Vulkan.
Color swapchain_state_border_color = Color(0, 0, 0, 0) 🔗
Цвет границы состояния цепочки обмена, который используется, когда режим переноса привязывается к границе.
Примечание: Это свойство действует только на устройствах, поддерживающих расширения OpenXR XR_FB_swapchain_update_state OpenGLES/Vulkan.
Swizzle swapchain_state_green_swizzle = 1 🔗
Значение swizzle для зеленого канала состояния swapchain.
Примечание: Это свойство влияет только на устройства, которые поддерживают расширения OpenXR XR_FB_swapchain_update_state OpenGLES/Vulkan.
Wrap swapchain_state_horizontal_wrap = 0 🔗
Режим горизонтального переноса состояния цепочки обмена.
Примечание: Это свойство действует только на устройствах, которые поддерживают расширения OpenXR XR_FB_swapchain_update_state OpenGLES/Vulkan.
Filter swapchain_state_mag_filter = 1 🔗
Фильтр увеличения состояния цепочки обмена.
Примечание: Это свойство действует только на устройствах, которые поддерживают расширения OpenXR XR_FB_swapchain_update_state OpenGLES/Vulkan.
float swapchain_state_max_anisotropy = 1.0 🔗
Максимальная анизотропия состояния swapchain.
Примечание: Это свойство влияет только на устройства, которые поддерживают расширения OpenXR XR_FB_swapchain_update_state OpenGLES/Vulkan.
Filter swapchain_state_min_filter = 1 🔗
Фильтр минификации состояния swapchain.
Примечание: Это свойство действует только на устройствах, которые поддерживают расширения OpenXR XR_FB_swapchain_update_state OpenGLES/Vulkan.
MipmapMode swapchain_state_mipmap_mode = 2 🔗
void set_mipmap_mode(value: MipmapMode)
MipmapMode get_mipmap_mode()
Режим mipmap состояния swapchain.
Примечание: Это свойство действует только на устройствах, которые поддерживают расширения OpenXR XR_FB_swapchain_update_state OpenGLES/Vulkan.
Swizzle swapchain_state_red_swizzle = 0 🔗
Значение swizzle для красного канала состояния swapchain.
Примечание: Это свойство влияет только на устройства, которые поддерживают расширения OpenXR XR_FB_swapchain_update_state OpenGLES/Vulkan.
Wrap swapchain_state_vertical_wrap = 0 🔗
Режим вертикального переноса состояния цепочки обмена.
Примечание: Это свойство действует только на устройствах, которые поддерживают расширения OpenXR XR_FB_swapchain_update_state OpenGLES/Vulkan.
bool use_android_surface = false 🔗
Если включено, будет создана поверхность Android (с размерами из android_surface_size), которая предоставит 2D-контент для слоя композиции, а не будет использовать layer_viewport.
См. get_android_surface() для получения информации о том, как получить поверхность, чтобы ваше приложение могло рисовать на ней.
Примечание: Это будет работать только в сборках Android.
Описания метода
JavaObject get_android_surface() 🔗
Возвращает JavaObject, представляющий android.view.Surface, если use_android_surface включен и OpenXR создал поверхность. В противном случае будет возвращен null.
Примечание: Поверхность может быть создана только во время активного сеанса OpenXR. Таким образом, если use_android_surface включен вне сеанса OpenXR, она не будет создана, пока полностью не начнется новый сеанс.
Vector2 intersects_ray(origin: Vector3, direction: Vector3) const 🔗
Возвращает UV-координаты, где заданный луч пересекается со слоем композиции. origin и direction должны быть в глобальном пространстве.
Возвращает Vector2(-1.0, -1.0), если луч не пересекается.
bool is_natively_supported() const 🔗
Возвращает true, если среда выполнения OpenXR изначально поддерживает этот тип слоя композиции.
Примечание: Это вернет точный результат только после начала сеанса OpenXR.