ARVRInterface
继承
简要描述
AR/VR接口实现的基类。
描述
需要实现此类,以使IdeaXR可以使用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模式并开始渲染。
注意:您必须为使用IdeaXR主要输出的任何设备(例如移动VR)在主视口上启用AR/VR模式。
如果您针对可处理其自身输出的平台(例如OpenVR)执行此操作,IdeaXR将仅显示一只眼睛而不会在屏幕上变形。
当前不使用时,您可以激活其他界面。
- is_stereo is_stereo()
如果此接口的当前输出为立体声,则返回true
。
- uninitialize uninitialize()
关闭界面。