ARVRInterface

Inherits: Reference < Object

继承人: ARVRInterfaceGDNativeMobileVRInterface

类别: 核心

简要说明

AR/VR接口实现的基类。

枚举

枚举 能力

  • ARVR_NONE = 0 ——无ARVR能力。

  • ARVR_MONO = 1 ---该界面可以正常渲染输出(非基于HMD的AR)。

  • ARVR_STEREO = 2 ---该界面支持立体渲染。

  • ARVR_AR = 4 ---此接口支持AR(视频背景和现实跟踪)。

  • ARVR_EXTERNAL = 8 ---此接口输出到外部设备,如果使用主视区,屏幕输出是左眼或右眼的未修改缓冲区(如果视区大小未更改为 get_render_targetsize )使用单独的视区节点可以释放主视区以用于其他目的。

枚举 Eyes

  • EYE_MONO = 0 ---单声道输出,主要用于检索相机节点的定位信息或不支持立体渲染时的内部。

  • EYE_LEFT = 1 ---左眼输出,主要用于左眼图像的绘制,获取定位和投影信息。

  • EYE_RIGHT = 2 ---右眼输出,主要用于右眼图像的绘制,获取定位和投影信息。

枚举 Tracking_status

  • ARVR_NORMAL_TRACKING = 0 ---跟踪工作按预期进行。

  • ARVR_EXCESSIVE_MOTION = 1 ---跟踪被过度运动所阻碍,玩家的移动速度超过了跟踪所能跟上的速度。

  • ARVR_INSUFFICIENT_FEATURES = 2 ---跟踪功能不足,太暗(摄像头跟踪),播放器被屏蔽等。

  • ARVR_UNKNOWN_TRACKING = 3 ---我们不知道跟踪的状态,或者这个界面不提供反馈。

  • ARVR_NOT_TRACKING = 4 ---跟踪功能不起作用(摄像头未插入或遮挡,灯塔关闭等)

描述

该类需要实现以使AR或VR平台可供Godot使用,并且这些类应被实现为C++模块或GDATA模块(注意,对于GDATION,应该使用子类ARVRScript接口)。接口的一部分暴露在gdscript中,因此您可以检测、启用和配置AR或VR平台。

接口的编写方式应该是这样的,只要启用它们就可以为我们提供一个工作设置。您可以通过以下方式查询可用的接口: ARVRServer .

属性描述

  • bool ar_is_anchor_detection_enabled

违约

设定器

设置锚点检测已启用(值)

吸气剂

get_anchor_detection_is_enabled()。

在AR接口上,是否启用了锚检测?

  • bool interface_is_initialized

违约

设定器

set_已初始化(值)

吸气剂

已初始化()

此接口是否已初始化?

  • bool interface_is_primary

违约

设定器

设置为主要(值)

吸气剂

是主要的

这是我们的主要接口吗?

方法说明

  • int get_camera_feed_id ( )

如果这是一个AR接口,需要将摄像头源显示为背景,则此方法返回 CameraServer 对于这个接口。

  • int get_capabilities ( ) const

返回提供有关此接口功能的信息的标志组合。

返回此接口的名称(openvr、openhmd、arkit等)。

  • Vector2 get_render_targetsize ( )

返回在VR平台应用镜头失真等操作之前,我们应该呈现中间结果的分辨率。

如果支持,返回跟踪的状态。这将允许您向用户提供关于位置跟踪是否存在问题的反馈。

  • bool initialize ( )

调用此函数初始化此接口。初始化的第一个接口被标识为主接口,它将用于呈现输出。

初始化要使用的接口后,需要启用视区的AR/VR模式,并开始渲染。

注: 对于任何使用godot主输出的设备(如移动虚拟现实),必须在主视区上启用ar/vr模式。

如果你为一个处理自己输出的平台(比如openvr)这样做,godot只会在屏幕上显示一只眼睛而不会变形。或者,您可以向场景中添加一个单独的视区节点,并在该视区上启用ar/vr,它将用于输出到hmd,使您可以在主窗口中自由地执行任何您喜欢的操作,例如使用单独的摄影机作为观众摄影机或渲染完全不同的内容。

虽然目前没有使用,但您可以激活其他接口,如果您想从其他平台跟踪控制器,您可能希望这样做。但是,此时只有一个接口可以呈现给HMD。

  • bool is_stereo ( )

返回 true 如果这个接口的电流输出是立体声的。

  • void uninitialize ( )

关闭接口。