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

Expérimental : This class may be changed or removed in future versions.

Hérite de : Node3D < Node < Object

Hérité par : OpenXRCompositionLayerCylinder, OpenXRCompositionLayerEquirect, OpenXRCompositionLayerQuad

La classe parente de tous les nœuds de composition de calque OpenXR.

Description

Les calques de composition permettent aux fenêtres d'affichage 2D d'être d'affichés à l'intérieur du casque par le compositeur XR avec des projections spéciales qui conservent leur qualité. Cela permet de rendre le texte clairement tout en gardant le calque à une résolution native.

Note : Si le runtime OpenXR ne supporte pas le type de calque de composition donné, un maillage de repli peut être généré avec un ViewportTexture, afin d'émuler le calque de composition.

Propriétés

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

Méthodes

JavaObject

get_android_surface()

Vector2

intersects_ray(origin: Vector3, direction: Vector3) const

bool

is_natively_supported() const


Énumérations

enum Filter: 🔗

Filter FILTER_NEAREST = 0

Effectue un filtrage du plus proche voisin lors de l’échantillonnage de la texture.

Filter FILTER_LINEAR = 1

Effectue un filtrage linéaire lors de l’échantillonnage de la texture.

Filter FILTER_CUBIC = 2

Effectue un filtrage cubique lors de l’échantillonnage de la texture.


enum MipmapMode: 🔗

MipmapMode MIPMAP_MODE_DISABLED = 0

Désactive le mipmapping.

Note : Le Mipmapping ne peut être désactivé que dans le moteur de rendu Compatibilité.

MipmapMode MIPMAP_MODE_NEAREST = 1

Utilise la mipmap de la résolution la plus proche.

MipmapMode MIPMAP_MODE_LINEAR = 2

Utilise une interpolation linéaire entre les deux mipmaps de la résolution la plus proche.


enum Wrap: 🔗

Wrap WRAP_CLAMP_TO_BORDER = 0

Borne la texture à sa couleur de bordure spécifiée.

Wrap WRAP_CLAMP_TO_EDGE = 1

Borne la texture à sa couleur de bord.

Wrap WRAP_REPEAT = 2

Répète la texture infiniment.

Wrap WRAP_MIRRORED_REPEAT = 3

Répète la texture infiniment, la retournant à chaque répétition.

Wrap WRAP_MIRROR_CLAMP_TO_EDGE = 4

Retourne la texture une fois et puis borne la texture à sa couleur de bord.

Note : Ce mode d'enroulement n'est pas disponible dans le moteur de rendu Compatibilité.


enum Swizzle: 🔗

Swizzle SWIZZLE_RED = 0

Associe un canal de couleur à la valeur du canal rouge.

Swizzle SWIZZLE_GREEN = 1

Associe un canal de couleur à la valeur du canal vert.

Swizzle SWIZZLE_BLUE = 2

Associe un canal de couleur à la valeur du canal bleu.

Swizzle SWIZZLE_ALPHA = 3

Associe un canal de couleur à la valeur du canal alpha.

Swizzle SWIZZLE_ZERO = 4

Associe un canal de couleur à la valeur zéro.

Swizzle SWIZZLE_ONE = 5

Associe un canal de couleur à la valeur un.


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.


Descriptions des propriétés

bool alpha_blend = false 🔗

  • void set_alpha_blend(value: bool)

  • bool get_alpha_blend()

Permet le mélange du calque en utilisant son canal alpha.

Peut être combiné avec Viewport.transparent_bg pour donner au calque un fond transparent.


Vector2i android_surface_size = Vector2i(1024, 1024) 🔗

  • void set_android_surface_size(value: Vector2i)

  • Vector2i get_android_surface_size()

La taille de la surface Android à créer si use_android_surface est activé.


bool enable_hole_punch = false 🔗

  • void set_enable_hole_punch(value: bool)

  • bool get_enable_hole_punch()

Active une technique appelée "hole punching" (litt. perforation de trous), qui permet de mettre le calque de composition derrière le calque de projection principal(c.-à-d. définir sort_order à une valeur négative) tout en "perforant un trou" à travers tout ce qui est rendu par Godot afin que le calque soit encore visible.

Cela peut être utilisé pour créer l'illusion que le calque de composition existe dans le même espace 3D que tout ce qui est rendu par Godot, permettant aux objets de passer à la fois derrière ou devant le calque de composition.


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 🔗

Le SubViewport à rendre sur le calque de composition.


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'ordre de tri pour ce calque de composition. Les valeurs plus élevées seront affichées devant les valeurs inférieures.

Note : Cela n'aura aucun effet si un maillage de repli est utilisé.


Swizzle swapchain_state_alpha_swizzle = 3 🔗

La valeur de permutation (swizzle) pour le canal alpha de l'état de la swapchain.

Note : Cette propriété a seulement un effet sur les appareils qui supportent les extensions OpenXR XR_FB_swapchain_update_state OpenGLES/Vulkan.


Swizzle swapchain_state_blue_swizzle = 2 🔗

La valeur de permutation (swizzle) pour le canal bleu de l'état de la swapchain.

Note : Cette propriété a seulement un effet sur les appareils qui supportent les extensions OpenXR XR_FB_swapchain_update_state OpenGLES/Vulkan.


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

  • void set_border_color(value: Color)

  • Color get_border_color()

La couleur de bordure de l'état de swapchain qui est utilisée lorsque le mode de wrap est limité à la bordure.

Note : Cette propriété a seulement un effet sur les appareils qui supportent les extensions OpenXR XR_FB_swapchain_update_state OpenGLES/Vulkan.


Swizzle swapchain_state_green_swizzle = 1 🔗

La valeur de permutation (swizzle) pour le canal vert de l'état de la swapchain.

Note : Cette propriété a seulement un effet sur les appareils qui supportent les extensions OpenXR XR_FB_swapchain_update_state OpenGLES/Vulkan.


Wrap swapchain_state_horizontal_wrap = 0 🔗

  • void set_horizontal_wrap(value: Wrap)

  • Wrap get_horizontal_wrap()

Le mode de wrap horizontal de l'état de la swapchain.

Note : Cette propriété a seulement un effet sur les appareils qui supportent les extensions OpenXR XR_FB_swapchain_update_state OpenGLES/Vulkan.


Filter swapchain_state_mag_filter = 1 🔗

  • void set_mag_filter(value: Filter)

  • Filter get_mag_filter()

Le filtre de grossissement de l'état de la swapchain.

Note : Cette propriété a seulement un effet sur les appareils qui supportent les extensions OpenXR XR_FB_swapchain_update_state OpenGLES/Vulkan.


float swapchain_state_max_anisotropy = 1.0 🔗

  • void set_max_anisotropy(value: float)

  • float get_max_anisotropy()

L'anisotropie maximale de l'état de la swapchain.

Note : Cette propriété a seulement un effet sur les appareils qui supportent les extensions OpenXR XR_FB_swapchain_update_state OpenGLES/Vulkan.


Filter swapchain_state_min_filter = 1 🔗

  • void set_min_filter(value: Filter)

  • Filter get_min_filter()

Le filtre de minification de l'état de la swapchain.

Note : Cette propriété a seulement un effet sur les appareils qui supportent les extensions OpenXR XR_FB_swapchain_update_state OpenGLES/Vulkan.


MipmapMode swapchain_state_mipmap_mode = 2 🔗

Le mode de mipmap de l'état de la swapchain.

Note : Cette propriété a seulement un effet sur les appareils qui supportent les extensions OpenXR XR_FB_swapchain_update_state OpenGLES/Vulkan.


Swizzle swapchain_state_red_swizzle = 0 🔗

La valeur de permutation (swizzle) pour le canal rouge de l'état de la swapchain.

Note : Cette propriété a seulement un effet sur les appareils qui supportent les extensions OpenXR XR_FB_swapchain_update_state OpenGLES/Vulkan.


Wrap swapchain_state_vertical_wrap = 0 🔗

  • void set_vertical_wrap(value: Wrap)

  • Wrap get_vertical_wrap()

Le mode de wrap vertical de l'état de la swapchain.

Note : Cette propriété a seulement un effet sur les appareils qui supportent les extensions OpenXR XR_FB_swapchain_update_state OpenGLES/Vulkan.


bool use_android_surface = false 🔗

  • void set_use_android_surface(value: bool)

  • bool get_use_android_surface()

Si activé, une surface Android sera créée (avec les dimensions de android_surface_size) qui fournira le contenu 2D pour le calque de composition, plutôt que d'utiliser layer_viewport.

Voir get_android_surface() pour obtenir des informations sur la façon d'obtenir la surface afin que votre application puisse y dessiner.

Note : Cela ne fonctionnera que dans les compilations Android.


Descriptions des méthodes

JavaObject get_android_surface() 🔗

Renvoie un JavaObject représentant un android.view.Surface si use_android_surface est activé et OpenXR a créé la surface. Sinon, cela renverra null.

Note : La surface ne peut être créée que lors d'une session OpenXR active. Donc, si use_android_surface est activé en dehors d'une session OpenXR, elle ne sera pas créée jusqu'à ce qu'une nouvelle session commence entièrement.


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

Renvoie les coordonnées UV où le rayon donné intersecte avec le calque de composition. origin et direction doivent être dans l'espace global.

Renvoie Vector2(-1.0, -1.0) si le rayon n'intersecte pas.


bool is_natively_supported() const 🔗

Renvoie true si le runtime OpenXR prend en charge nativement ce type de calque de composition.

Note : Cela ne renverra un résultat fiable qu'après que la session OpenXR ait commencé.