ARVRInterface
Inherited By: ARVRInterfaceGDNative, MobileVRInterface, WebXRInterface
AR/VR接口实现的基类。
描述
需要实现这个类才能使 AR 或 VR 平台可供 Godot 使用,并且应实现为 C++ 模块或 GDNative 模块,注意,对于 GDNative,应使用子类 ARVRScriptInterface。部分接口向 GDScript 公开,因而,您可以检测、启用和配置 AR 或 VR 平台。
接口应以这样的方式编写,只需启用它们就可以为我们提供工作配置。您可以通过ARVRServer查询可用接口。
教程
属性
| ||
| ||
|
方法
get_capabilities ( ) const | |
get_name ( ) const | |
get_tracking_status ( ) const | |
initialize ( ) | |
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 —- 这个接口输出到一个外部设备。如果使用主视窗,屏幕上的输出是一个未经修改的左眼或右眼的缓冲区,如果没有将视窗尺寸更改为get_render_targetsize的相同长宽比,则被拉伸。使用一个单独的视窗节点可以释放出主视窗,用于其他用途。
enum Eyes:
EYE_MONO = 0 —- Mono输出,这主要是在相机节点检索定位信息时,或者在不支持立体视景渲染时,内部使用。
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 |
|
Setter | set_anchor_detection_is_enabled(value) |
Getter | get_anchor_detection_is_enabled() |
在 AR 接口上,如果启用锚点检测,则为 true
。
- bool interface_is_initialized
Default |
|
Setter | set_is_initialized(value) |
Getter | is_initialized() |
true
如果这个接口已经初始化。
- bool interface_is_primary
Default |
|
Setter | set_is_primary(value) |
Getter | is_primary() |
true
如果这是个主接口。
方法说明
- int get_camera_feed_id ( )
如果这是一个需要显示相机画面作为背景的AR界面,此方法返回该界面的CameraServer中的画面ID。
- int get_capabilities ( ) const
返回Capabilities标签的组合,提供关于这个接口功能的信息。
- String get_name ( ) const
返回该接口的名称,如OpenVR、OpenHMD、ARKit等。
- Vector2 get_render_targetsize ( )
返回在VR平台应用镜头失真等内容之前渲染的中间结果的分辨率。
- Tracking_status get_tracking_status ( ) const
如果支持,返回我们的跟踪状态。这将使你能够向用户反馈,是否存在位置跟踪的问题。
- bool initialize ( )
调用这个来初始化这个接口。第一个被初始化的接口确定为主接口,用于渲染输出。
在初始化了接口之后,需要启用视窗的AR/VR模式,将开始渲染。
注意: 对于任何使用Godot主输出的设备,如移动VR,你必须在主视窗上启用AR/VR模式。
如果你为一个处理自己输出的平台这样做,如OpenVR,Godot就会在屏幕上只显示一只眼睛而不失真。另外,你可以在场景中添加一个单独的视窗节点,在该视窗上启用AR/VR。它将被用来输出到HMD,让你在主窗口中做你喜欢的事情,比如用一个单独的相机作为旁观者相机,或者渲染一些完全不同的东西。
虽然目前没有使用,但你可以激活其他接口。如果你想跟踪其他平台的控制器,可能希望这样做。然而,此时,只有一个界面可以渲染到HMD。
- bool is_stereo ( )
如果这个接口的当前是立体声输出,返回true
。
- void uninitialize ( )
关闭接口。