OpenXRCompositionLayer

实验性: This class may be changed or removed in future versions.

继承: Node3D < Node < Object

派生: OpenXRCompositionLayerCylinder, OpenXRCompositionLayerEquirect, OpenXRCompositionLayerQuad

所有 OpenXR 合成层节点的父类。

描述

合成层允许 XR 合成器通过保留其质量的特殊投影,从而在头戴式设备内显示 2D 视口。这样可以在保持图层的原始分辨率的同时,渲染清晰的文本。

注意:如果 OpenXR 运行时不支持给定的合成层类型,则可以使用 ViewportTexture 生成后备网格,以模拟合成层。

属性

bool

alpha_blend

false

bool

enable_hole_punch

false

SubViewport

layer_viewport

int

sort_order

1

方法

Vector2

intersects_ray(origin: Vector3, direction: Vector3) const

bool

is_natively_supported() const


属性说明

bool alpha_blend = false 🔗

  • void set_alpha_blend(value: bool)

  • bool get_alpha_blend()

启用使用其 alpha 通道混合图层的功能。

可以与 Viewport.transparent_bg 结合使用,以便为图层提供透明背景。


bool enable_hole_punch = false 🔗

  • void set_enable_hole_punch(value: bool)

  • bool get_enable_hole_punch()

启用一种称为“打孔”的技术,该技术允许将合成层置于主投影层后面(即将 sort_order 设置为负值),同时在 Godot 渲染的所有内容上“打一个洞”,以便该层仍然可见。

这可用于创建合成层与 Godot 渲染的所有内容存在于同一 3D 空间中的幻觉,使对象看起来既从合成层的后面又从合成层的前面经过。


SubViewport layer_viewport 🔗

合成层上渲染的 SubViewport


int sort_order = 1 🔗

  • void set_sort_order(value: int)

  • int get_sort_order()

合成层的排序顺序。数字较大的层显示在数字较小的层之前。

注意:使用回退网格时无效。


方法说明

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

返回给定射线与合成层相交的 UV 坐标。origindirection 必须位于全局空间中。

如果射线不相交,则返回 Vector2(-1.0, -1.0)


bool is_natively_supported() const 🔗

如果 OpenXR 运行时本身支持该合成层类型,则返回 true。

注意:仅在 OpenXR 会话启动后才会返回准确结果。