跳到主要内容

ARVRInterface

继承

Reference

简要描述

AR/VR接口实现的基类。

描述

需要实现此类,以使IdeaXR可以使用AR或VR平台,并且应将其实现为C模块或GDNative模块(请注意,对于GDNative,应使用子类ARVRScriptInterface)。

接口的编写方式应使其简单,即可为我们提供有效的设置。

成员

类型属性名默认值
boolar_is_anchor_detection_enabledfalse
boolinterface_is_initializedfalse
boolinterface_is_primaryfalse

方法

返回值类型方法名称
intget_camera_feed_id()
intget_capabilities() const
Stringget_name() const
Vector2get_render_targetsize()
intget_tracking_status() const
boolinitialize()
boolis_stereo()
voiduninitialize()

枚举

enum Capabilities:

  • **ARVR_NONE = 0**

没有ARVR功能。

  • **ARVR_MONO = 1**

该接口可以使用普通渲染输出(基于非HMD的AR)。

  • **ARVR_STEREO = 2**

该接口支持立体渲染。

  • **ARVR_AR = 4**

该界面支持AR(视频背景和现实世界跟踪)。

  • **ARVR_EXTERNAL = 8**

该接口输出到外部设备。


enum Eyes:

  • **EYE_MONO = 0**

单声道输出,主要在内部获取摄像机节点的位置信息或不支持立体渲染时使用。

  • **EYE_LEFT = 1**

左眼输出,当为左眼渲染图像并获得定位和投影信息时,通常在内部使用。

  • **EYE_RIGHT = 2**

右眼输出,通常在内部为右眼渲染图像并获取定位和投影信息时使用。


enum Tracking_status:

  • **ARVR_NORMAL_TRACKING = 0**

跟踪行为符合预期。

  • **ARVR_EXCESSIVE_MOTION = 1**

过度运动会阻碍跟踪(播放器的移动速度快于跟踪的速度)。

  • **ARVR_INSUFFICIENT_FEATURES = 2**

功能不足,太暗(对于基于摄像机的跟踪),播放器被遮挡等,都会阻碍跟踪。

  • **ARVR_UNKNOWN_TRACKING = 3**

我们不知道跟踪状态,或者此界面不提供反馈。

  • **ARVR_NOT_TRACKING = 4**

跟踪无法正常工作(相机未插入电源或被遮挡,灯塔关闭等)。


常量

成员说明

  • bool ar_is_anchor_detection_enabled
Defaultfalse
setterset_anchor_detection_is_enabled(value)
getterget_anchor_detection_is_enabled
  • bool interface_is_initialized
Defaultfalse
setterset_is_initialized(value)
getteris_initialized
  • bool interface_is_primary
Defaultfalse
setterset_is_primary(value)
getteris_primary

方法说明

  • get_camera_feed_id get_camera_feed_id()

如果这是一个AR界面,需要显示摄像机提要作为背景,则此方法在CameraServer中为此接口返回提要ID。


  • get_capabilities get_capabilities() const

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


  • get_name get_name() const

返回此接口的名称(OpenVR,OpenHMD,ARKit等)。


  • get_render_targetsize get_render_targetsize()

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


  • get_tracking_status get_tracking_status() const

如果支持,则返回跟踪状态。


  • initialize initialize()

调用它来初始化此接口。

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

注意:您必须为使用IdeaXR主要输出的任何设备(例如移动VR)在主视口上启用AR/VR模式。

如果您针对可处理其自身输出的平台(例如OpenVR)执行此操作,IdeaXR将仅显示一只眼睛而不会在屏幕上变形。

当前不使用时,您可以激活其他界面。


  • is_stereo is_stereo()

如果此接口的当前输出为立体声,则返回true


  • uninitialize uninitialize()

关闭界面。