跳转至

ARVRInterface

继承

Reference

简要描述

AR/VR接口实现的基类。

描述

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

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

成员

类型 属性名 默认值
bool ar_is_anchor_detection_enabled false
bool interface_is_initialized false
bool interface_is_primary false

方法

返回值类型 方法名称
int get_camera_feed_id()
int get_capabilities() const
String get_name() const
Vector2 get_render_targetsize()
int get_tracking_status() const
bool initialize()
bool is_stereo()
void uninitialize()
##枚举
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
Default false
setter set_anchor_detection_is_enabled(value)
getter get_anchor_detection_is_enabled
  • bool interface_is_initialized
Default false
setter set_is_initialized(value)
getter is_initialized
  • bool interface_is_primary
Default false
setter set_is_primary(value)
getter is_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模式并开始渲染。

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

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

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


  • is_stereo is_stereo()

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


  • uninitialize uninitialize()

关闭界面。