Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

OpenXRCompositionLayer

Sperimentale: This class may be changed or removed in future versions.

Eredita: Node3D < Node < Object

Ereditato da: OpenXRCompositionLayerCylinder, OpenXRCompositionLayerEquirect, OpenXRCompositionLayerQuad

Classe padre di tutti i nodi OpenXR dei livelli di composizione.

Descrizione

I livelli di composizione consentono al compositore XR di visualizzare le viewport 2D all'interno del visore tramite proiezioni speciali che ne mantengono la qualità. Ciò consente di renderizzare testo chiaro mantenendo il livello a una risoluzione nativa.

Nota: Se l'esecuzione OpenXR non supporta il tipo di livello di composizione specificato, è possibile generare una mesh di riserva con una ViewportTexture, per emulare il livello di composizione.

Proprietà

bool

alpha_blend

false

Vector2i

android_surface_size

Vector2i(1024, 1024)

bool

enable_hole_punch

false

EyeVisibility

eye_visibility

0

SubViewport

layer_viewport

bool

protected_content

false

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

Metodi

JavaObject

get_android_surface()

Vector2

intersects_ray(origin: Vector3, direction: Vector3) const

bool

is_natively_supported() const


Enumerazioni

enum Filter: 🔗

Filter FILTER_NEAREST = 0

Utilizza il filtro vicino più ravvicinato per campionare la texture.

Filter FILTER_LINEAR = 1

Utilizza il filtro lineare per campionare la texture.

Filter FILTER_CUBIC = 2

Utilizza il filtro cubico per campionare la texture.


enum MipmapMode: 🔗

MipmapMode MIPMAP_MODE_DISABLED = 0

Disabilita il mipmapping.

Nota: il mipmapping si può disabilitare solo nel renderer Compatibilità.

MipmapMode MIPMAP_MODE_NEAREST = 1

Utilizza la mipmap della risoluzione più vicina.

MipmapMode MIPMAP_MODE_LINEAR = 2

Utilizza un'interpolazione lineare tra le due mipmap della risoluzione più vicina.


enum Wrap: 🔗

Wrap WRAP_CLAMP_TO_BORDER = 0

Limita la texture al suo colore di bordo specificato.

Wrap WRAP_CLAMP_TO_EDGE = 1

Limita la texture al suo colore di bordo.

Wrap WRAP_REPEAT = 2

Ripete la texture infinitamente.

Wrap WRAP_MIRRORED_REPEAT = 3

Ripeti la texture all'infinito, rispecchiandola a ogni ripetizione.

Wrap WRAP_MIRROR_CLAMP_TO_EDGE = 4

Rispecchia la texture una sola volta e poi la limita al suo colore di bordo.

Nota: Questa modalità di avvolgimento non è disponibile nel renderer Compatibilità.


enum Swizzle: 🔗

Swizzle SWIZZLE_RED = 0

Mappa un canale colore al valore del canale rosso.

Swizzle SWIZZLE_GREEN = 1

Mappa un canale colore al valore del canale verde.

Swizzle SWIZZLE_BLUE = 2

Mappa un canale colore al valore del canale blu.

Swizzle SWIZZLE_ALPHA = 3

Mappa un canale colore al valore del canale alfa.

Swizzle SWIZZLE_ZERO = 4

Mappa un canale colore al valore di zero.

Swizzle SWIZZLE_ONE = 5

Mappa un canale colore al valore di uno.


enum EyeVisibility: 🔗

EyeVisibility EYE_VISIBILITY_BOTH = 0

The layer is visible to both the left and right eyes.

EyeVisibility EYE_VISIBILITY_LEFT = 1

The layer is visible only to the left eye.

EyeVisibility EYE_VISIBILITY_RIGHT = 2

The layer is visible only to the right eye.


Descrizioni delle proprietà

bool alpha_blend = false 🔗

  • void set_alpha_blend(value: bool)

  • bool get_alpha_blend()

Abilita la fusione del livello usando il suo canale alfa.

Può essere combinato con Viewport.transparent_bg per dare al livello uno sfondo trasparente.


Vector2i android_surface_size = Vector2i(1024, 1024) 🔗

  • void set_android_surface_size(value: Vector2i)

  • Vector2i get_android_surface_size()

La dimensione della superficie Android da creare se use_android_surface è abilitato.


bool enable_hole_punch = false 🔗

  • void set_enable_hole_punch(value: bool)

  • bool get_enable_hole_punch()

Abilita una tecnica chiamata "hole punching", che consente di posizionare il livello di composizione dietro il livello di proiezione principale (ad esempio impostando sort_order su un valore negativo) mentre "perfora un buco" attraverso tutto ciò che è stato renderizzato da Godot in modo che il livello sia ancora visibile.

Ciò può essere utilizzato per creare l'illusione che il livello di composizione esista nello stesso spazio 3D di tutto ciò che è stato renderizzato da Godot, consentendo agli oggetti di apparire come se passassero dietro o davanti al livello di composizione.


EyeVisibility eye_visibility = 0 🔗

The eye(s) the composition layer is visible to.

Note: Not all composition layer types or runtimes support restricting visibility to a single eye.


SubViewport layer_viewport 🔗

La SubViewport da renderizzare sul livello di composizione.


bool protected_content = false 🔗

  • void set_protected_content(value: bool)

  • bool is_protected_content()

If enabled, the OpenXR swapchain will be created with the XR_SWAPCHAIN_CREATE_PROTECTED_CONTENT_BIT flag, which will protect its contents from CPU access.

When used with an Android Surface, this may allow DRM content to be presented, and will only take effect when the Surface is first created; later changes to this property will have no effect.


int sort_order = 1 🔗

  • void set_sort_order(value: int)

  • int get_sort_order()

L'ordine di ordinamento per questo livello di composizione. I numeri più alti saranno mostrati davanti ai numeri più bassi.

Nota: Questo non avrà alcun effetto se si utilizza una mesh di riserva.


Swizzle swapchain_state_alpha_swizzle = 3 🔗

Il valore di permutazione (swizzle) per il canale alfa dello stato della swapchain.

Nota: Questa proprietà ha effetto solo sui dispositivi che supportano le estensioni OpenGLES/Vulkan OpenXR XR_FB_swapchain_update_state.


Swizzle swapchain_state_blue_swizzle = 2 🔗

Il valore di permutazione (swizzle) per il canale blu dello stato della swapchain.

Nota: Questa proprietà ha effetto solo sui dispositivi che supportano le estensioni 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()

Colore di bordo dello stato di swapchain utilizzato quando la modalità di avvolgimento si limita al bordo.

Nota: Questa proprietà ha effetto solo sui dispositivi che supportano le estensioni OpenGLES/Vulkan OpenXR XR_FB_swapchain_update_state.


Swizzle swapchain_state_green_swizzle = 1 🔗

Il valore di permutazione (swizzle) per il canale verde dello stato della swapchain.

Nota: Questa proprietà ha effetto solo sui dispositivi che supportano le estensioni OpenGLES/Vulkan OpenXR XR_FB_swapchain_update_state.


Wrap swapchain_state_horizontal_wrap = 0 🔗

  • void set_horizontal_wrap(value: Wrap)

  • Wrap get_horizontal_wrap()

La modalità di avvolgimento orizzontale dello stato della swapchain.

Nota: Questa proprietà ha effetto solo sui dispositivi che supportano le estensioni OpenGLES/Vulkan OpenXR XR_FB_swapchain_update_state.


Filter swapchain_state_mag_filter = 1 🔗

  • void set_mag_filter(value: Filter)

  • Filter get_mag_filter()

Il filtro di ingrandimento dello stato della swapchain.

Nota: Questa proprietà ha effetto solo sui dispositivi che supportano le estensioni 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()

L'anisotropia massima dello stato della swapchain.

Nota: Questa proprietà ha effetto solo sui dispositivi che supportano le estensioni OpenGLES/Vulkan OpenXR XR_FB_swapchain_update_state.


Filter swapchain_state_min_filter = 1 🔗

  • void set_min_filter(value: Filter)

  • Filter get_min_filter()

Il filtro di minimizzazione dello stato della swapchain.

Nota: Questa proprietà ha effetto solo sui dispositivi che supportano le estensioni OpenGLES/Vulkan OpenXR XR_FB_swapchain_update_state.


MipmapMode swapchain_state_mipmap_mode = 2 🔗

La modalità di mipmap dello stato della swapchain.

Nota: Questa proprietà ha effetto solo sui dispositivi che supportano le estensioni OpenGLES/Vulkan OpenXR XR_FB_swapchain_update_state.


Swizzle swapchain_state_red_swizzle = 0 🔗

Il valore di permutazione (swizzle) per il canale rosso dello stato della swapchain.

Nota: Questa proprietà ha effetto solo sui dispositivi che supportano le estensioni OpenGLES/Vulkan OpenXR XR_FB_swapchain_update_state.


Wrap swapchain_state_vertical_wrap = 0 🔗

  • void set_vertical_wrap(value: Wrap)

  • Wrap get_vertical_wrap()

La modalità di avvolgimento verticale dello stato della swapchain.

Nota: Questa proprietà ha effetto solo sui dispositivi che supportano le estensioni 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()

Se abilitato, sarà creata una superficie Android (con le dimensioni di android_surface_size) che fornirà il contenuto 2D per il livello di composizione, invece di usare layer_viewport.

Consulta get_android_surface() per informazioni su come ottenere la superficie in modo che la tua applicazione ci possa disegnare sopra.

Nota: Ciò funzionerà solo nelle build Android.


Descrizioni dei metodi

JavaObject get_android_surface() 🔗

Restituisce un JavaObject che rappresenta un android.view.Surface se use_android_surface è abilitato e OpenXR ha creato la superficie. Altrimenti, restituirà null.

Nota: È possibile creare la superficie solo durante una sessione OpenXR attiva. Quindi, se use_android_surface è abilitato al di fuori di una sessione OpenXR, non verrà creata finché non si avvia completamente una nuova sessione.


Vector2 intersects_ray(origin: Vector3, direction: Vector3) const 🔗

Restituisce le coordinate UV in cui il raggio specificato interseca il livello di composizione. origin e direction devono essere nello spazio globale.

Restituisce Vector2(-1.0, -1.0) se il raggio non interseca.


bool is_natively_supported() const 🔗

Restituisce true se il runtime OpenXR supporta nativamente questo tipo di livello di composizione.

Nota: Questo metodo restituirà un risultato preciso solo dopo l'avvio della sessione OpenXR.