OpenXRCompositionLayer
实验性: This class may be changed or removed in future versions.
派生: OpenXRCompositionLayerCylinder, OpenXRCompositionLayerEquirect, OpenXRCompositionLayerQuad
所有 OpenXR 合成层节点的父类。
描述
合成层允许 XR 合成器通过保留其质量的特殊投影,从而在头戴式设备内显示 2D 视口。这样可以在保持图层的原始分辨率的同时,渲染清晰的文本。
注意:如果 OpenXR 运行时不支持给定的合成层类型,则可以使用 ViewportTexture 生成后备网格,以模拟合成层。
属性
|
||
|
||
|
||
|
||
|
方法
intersects_ray(origin: Vector3, direction: Vector3) const |
|
is_natively_supported() const |
属性说明
启用使用其 alpha 通道混合图层的功能。
可以与 Viewport.transparent_bg 结合使用,以便为图层提供透明背景。
Vector2i android_surface_size = Vector2i(1024, 1024) 🔗
如果启用了 use_android_surface,则为要创建的 Android 表面的大小。
bool enable_hole_punch = false 🔗
启用一种称为“打孔”的技术,该技术允许将合成层置于主投影层后面(即将 sort_order 设置为负值),同时在 Godot 渲染的所有内容上“打一个洞”,以便该层仍然可见。
这可用于创建合成层与 Godot 渲染的所有内容存在于同一 3D 空间中的幻觉,使对象看起来既从合成层的后面又从合成层的前面经过。
SubViewport layer_viewport 🔗
void set_layer_viewport(value: SubViewport)
SubViewport get_layer_viewport()
合成层上渲染的 SubViewport。
合成层的排序顺序。数字较大的层显示在数字较小的层之前。
注意:使用回退网格时无效。
bool use_android_surface = false 🔗
如果启用,则会创建 Android 表面(大小为 android_surface_size),为合成层提供 2D 内容,不使用 layer_viewport。
如何获取该表面以便应用程序在表面上进行绘制,见 get_android_surface()。
注意:仅在 Android 构建上有效。
方法说明
JavaObject get_android_surface() 🔗
如果启用了 use_android_surface 并且 OpenXR 已创建 android.view.Surface,则返回代表该表面的 JavaObject。否则返回 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 🔗
如果 OpenXR 运行时本身支持该合成层类型,则返回 true。
注意:仅在 OpenXR 会话启动后才会返回准确结果。