OpenXRCompositionLayer

Експериментальний: This class may be changed or removed in future versions.

Успадковує: Node3D < Node < Object

Успадковано від: OpenXRCompositionLayerCylinder, OpenXRCompositionLayerEquirect, OpenXRCompositionLayerQuad

Паризький клас всіх шарових вузлів OpenXR.

Опис

Складові шари дозволяють 2D переглядатипорти, які відображаються всередині гарнітури композитором XR через спеціальні проекції, які зберігають їх якість. Це дозволяє надати чіткий текст, зберігаючи шар на рідній роздільній здатності.

Примітка: Якщо пусковий час OpenXR не підтримує тип даної композиції, сітчаста сіточка може бути створена за допомогою ViewportTexture, для того, щоб емульувати шар композиції.

Властивості

bool

alpha_blend

false

Vector2i

android_surface_size

Vector2i(1024, 1024)

bool

enable_hole_punch

false

SubViewport

layer_viewport

int

sort_order

1

Swizzle

swapchain_state_alpha_swizzle

3

Swizzle

swapchain_state_blue_swizzle

2

Color

swapchain_state_border_color

Color(0, 0, 0, 0)

Swizzle

swapchain_state_green_swizzle

1

Wrap

swapchain_state_horizontal_wrap

0

Filter

swapchain_state_mag_filter

1

float

swapchain_state_max_anisotropy

1.0

Filter

swapchain_state_min_filter

1

MipmapMode

swapchain_state_mipmap_mode

2

Swizzle

swapchain_state_red_swizzle

0

Wrap

swapchain_state_vertical_wrap

0

bool

use_android_surface

false

Методи

JavaObject

get_android_surface()

Vector2

intersects_ray(origin: Vector3, direction: Vector3) const

bool

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

Використовуйте міп-карту найближчої роздільної здатності.

MipmapMode MIPMAP_MODE_LINEAR = 2

Використайте лінійну інтерполяцію двох міп-карт найближчої роздільної здатності.


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

Зіставляє колірний канал зі значенням одиниці.


Описи властивостей

bool alpha_blend = false 🔗

  • void set_alpha_blend(value: bool)

  • bool get_alpha_blend()

Дозволяє змішувати шар за допомогою його альфа-каналу.

Можна поєднувати з Viewport.transparent_bg, щоб надати шару прозорий фон.


Vector2i android_surface_size = Vector2i(1024, 1024) 🔗

  • void set_android_surface_size(value: Vector2i)

  • Vector2i get_android_surface_size()

Розмір поверхні Android для створення, якщо ввімкнено use_android_surface.


bool enable_hole_punch = false 🔗

  • void set_enable_hole_punch(value: bool)

  • bool get_enable_hole_punch()

Увімкнено методику «пробивання свердловини», що дозволяє покласти шар композиції за основним проекційним шаром (тобто налаштування sort_order до негативного значення), при цьому «пробиваючи отвір» через все, що надає Godot, щоб шар ще був видимим.

Це може бути використаний для створення ілюзії, що шар композиції існує в тому ж просторі 3D, оскільки все, що дає Godot, що дозволяє об'єктам, щоб з'явитися, щоб пройти обидва за або перед шаром композиції.


SubViewport layer_viewport 🔗

SubViewport для рендерингу на шар композиції.


int sort_order = 1 🔗

  • void set_sort_order(value: int)

  • int get_sort_order()

Сортувати за цим шаром композиції. Більші числа будуть показані перед нижніми номерами.

Примітка: Це не має ефекту, якщо використовується сітчаста сіточка.


Swizzle swapchain_state_alpha_swizzle = 3 🔗

Значення swizzle для альфа-каналу стану swapchain.

Примітка: Ця властивість впливає лише на пристрої, що підтримують розширення OpenGLES/Vulkan для OpenXR XR_FB_swapchain_update_state.


Swizzle swapchain_state_blue_swizzle = 2 🔗

Значення swizzle для синього каналу стану swapchain.

Примітка: Ця властивість впливає лише на пристрої, що підтримують розширення OpenGLES/Vulkan від OpenXR XR_FB_swapchain_update_state.


Color swapchain_state_border_color = Color(0, 0, 0, 0) 🔗

  • void set_border_color(value: Color)

  • Color get_border_color()

Колір межі стану swapchain, який використовується, коли режим обгортання притискається до межі.

Примітка: Ця властивість впливає лише на пристрої, що підтримують розширення OpenGLES/Vulkan від OpenXR XR_FB_swapchain_update_state.


Swizzle swapchain_state_green_swizzle = 1 🔗

Значення swizzle для зеленого каналу стану swapchain.

Примітка: Ця властивість впливає лише на пристрої, що підтримують розширення OpenGLES/Vulkan для OpenXR XR_FB_swapchain_update_state.


Wrap swapchain_state_horizontal_wrap = 0 🔗

  • void set_horizontal_wrap(value: Wrap)

  • Wrap get_horizontal_wrap()

Режим горизонтального перенесення стану swapchain.

Примітка: Ця властивість впливає лише на пристрої, що підтримують розширення OpenGLES/Vulkan для OpenXR XR_FB_swapchain_update_state.


Filter swapchain_state_mag_filter = 1 🔗

  • void set_mag_filter(value: Filter)

  • Filter get_mag_filter()

Фільтр збільшення стану swapchain.

Примітка: Ця властивість впливає лише на пристрої, що підтримують розширення OpenGLES/Vulkan від OpenXR XR_FB_swapchain_update_state.


float swapchain_state_max_anisotropy = 1.0 🔗

  • void set_max_anisotropy(value: float)

  • float get_max_anisotropy()

Максимальна анізотропія стану swapchain.

Примітка: Ця властивість впливає лише на пристрої, що підтримують розширення OpenGLES/Vulkan від OpenXR XR_FB_swapchain_update_state.


Filter swapchain_state_min_filter = 1 🔗

  • void set_min_filter(value: Filter)

  • Filter get_min_filter()

Фільтр мініфікації стану swapchain.

Примітка: Ця властивість впливає лише на пристрої, що підтримують розширення OpenGLES/Vulkan від OpenXR XR_FB_swapchain_update_state.


MipmapMode swapchain_state_mipmap_mode = 2 🔗

Режим mipmap стану swapchain.

Примітка: Ця властивість впливає лише на пристрої, що підтримують розширення OpenGLES/Vulkan від OpenXR XR_FB_swapchain_update_state.


Swizzle swapchain_state_red_swizzle = 0 🔗

Значення swizzle для червоного каналу стану swapchain.

Примітка: Ця властивість впливає лише на пристрої, що підтримують розширення OpenGLES/Vulkan від OpenXR XR_FB_swapchain_update_state.


Wrap swapchain_state_vertical_wrap = 0 🔗

  • void set_vertical_wrap(value: Wrap)

  • Wrap get_vertical_wrap()

Режим вертикального перенесення стану swapchain.

Примітка: Ця властивість впливає лише на пристрої, що підтримують розширення OpenGLES/Vulkan для OpenXR XR_FB_swapchain_update_state.


bool use_android_surface = false 🔗

  • void set_use_android_surface(value: bool)

  • bool get_use_android_surface()

Якщо ввімкнено, буде створено поверхню 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.