ARVRInterface

Inherits: Reference < Object

Inherited By: ARVRInterfaceGDNative, MobileVRInterface, WebXRInterface

Clase base para la implementación de una interfaz AR/VR.

Descripción

This class needs to be implemented to make an AR or VR platform available to Godot and these should be implemented as C++ modules or GDNative modules (note that for GDNative the subclass ARVRScriptInterface should be used). Part of the interface is exposed to GDScript so you can detect, enable and configure an AR or VR platform.

Interfaces should be written in such a way that simply enabling them will give us a working setup. You can query the available interfaces through ARVRServer.

Tutoriales

Propiedades

bool

ar_is_anchor_detection_enabled

false

bool

interface_is_initialized

false

bool

interface_is_primary

false

Métodos

int

get_camera_feed_id ( )

int

get_capabilities ( ) const

String

get_name ( ) const

Vector2

get_render_targetsize ( )

Tracking_status

get_tracking_status ( ) const

bool

initialize ( )

bool

is_stereo ( )

void

uninitialize ( )

Enumeraciones

enum Capabilities:

  • ARVR_NONE = 0 --- No ARVR capabilities.

  • ARVR_MONO = 1 --- Esta interfaz puede funcionar con una salida de renderizado normal (AR no basada en HMD).

  • ARVR_STEREO = 2 --- Esta interfaz soporta la renderización estereoscópica.

  • ARVR_AR = 4 --- Esta interfaz soporta AR (video de fondo y seguimiento en el mundo real).

  • ARVR_EXTERNAL = 8 --- Esta interfaz da salida a un dispositivo externo. Si se utiliza la vista principal, la salida en pantalla es un búfer sin modificar del ojo izquierdo o derecho (se estira si el tamaño de la vista no se cambia a la misma relación de aspecto de get_render_targetsize). El uso de un nodo de vista separado libera la vista principal para otros propósitos.


enum Eyes:

  • EYE_MONO = 0 --- Salida mono, se utiliza principalmente de forma interna cuando se recupera la información de posicionamiento para nuestro nodo de cámara o cuando la representación estereoscópica no es compatible.

  • EYE_LEFT = 1 --- Salida del ojo izquierdo, se utiliza principalmente de forma interna al renderizar la imagen para el ojo izquierdo y obtener información de posicionamiento y proyección.

  • EYE_RIGHT = 2 --- Salida del ojo derecho, se utiliza principalmente de forma interna al renderizar la imagen para el ojo derecho y obtener información de posicionamiento y proyección.


enum Tracking_status:

  • ARVR_NORMAL_TRACKING = 0 --- El rastreo se está comportando como se esperaba.

  • ARVR_EXCESSIVE_MOTION = 1 --- El rastreo se ve obstaculizado por un movimiento excesivo (el jugador se mueve más rápido de lo que el rastreo puede mantener).

  • ARVR_INSUFFICIENT_FEATURES = 2 --- El rastreo se ve obstaculizado por características insuficientes, está demasiado oscuro (para el rastreo basado en la cámara), el reproductor está bloqueado, etc.

  • ARVR_UNKNOWN_TRACKING = 3 --- No conocemos el estado del rastreo o esta interfaz no proporciona información.

  • ARVR_NOT_TRACKING = 4 --- El rastreo no funciona (cámara no enchufada u oscurecida, faros apagados, etc.).

Descripciones de Propiedades

  • bool ar_is_anchor_detection_enabled

Default

false

Setter

set_anchor_detection_is_enabled(value)

Getter

get_anchor_detection_is_enabled()

En una interfaz AR, true si la detección de anclas está activada.


  • bool interface_is_initialized

Default

false

Setter

set_is_initialized(value)

Getter

is_initialized()

true si esta interfaz ha sido inicializada.


  • bool interface_is_primary

Default

false

Setter

set_is_primary(value)

Getter

is_primary()

true si esta es la interfaz primaria.

Descripciones de Métodos

  • int get_camera_feed_id ( )

Si se trata de una interfaz AR que requiere mostrar una alimentación de la cámara como fondo, este método devuelve el ID de la alimentación en el CameraServer para esta interfaz.


  • int get_capabilities ( ) const

Devuelve una combinación de flags Capabilities que proporcionan información sobre las capacidades de esta interfaz.


Devuelve el nombre de esta interfaz (OpenVR, OpenHMD, ARKit, etc.).


  • Vector2 get_render_targetsize ( )

Devuelve la resolución a la que deberíamos renderizar nuestros resultados intermedios antes de que cosas como la distorsión de la lente sean aplicadas por la plataforma VR.


Si se apoya, devuelve el estado de nuestro rastreo. Esto le permitirá proporcionar información al usuario sobre si hay problemas con el rastreo posicional.


  • bool initialize ( )

Llama a esto para inicializar esta interfaz. La primera interfaz que se inicializa se identifica como la interfaz principal y se utilizará para la prestación de servicios.

Después de inicializar la interfaz que quieres usar, necesitas habilitar el modo AR/VR de una ventana y la renderización debe comenzar.

Nota: Debes habilitar el modo AR/VR en la vista principal para cualquier dispositivo que utilice la salida principal de Godot, como por ejemplo para la RV móvil.

Si lo haces para una plataforma que maneja su propia salida (como OpenVR), Godot mostrará un solo ojo sin distorsión en la pantalla. Alternativamente, puedes añadir un nodo de puerto de visión separado a tu escena y habilitar la AR/VR en ese puerto de visión. Se utilizará para la salida al HMD, dejándote libre para hacer lo que quieras en la ventana principal, como usar una cámara separada como cámara de espectador o renderizar algo completamente diferente.

Mientras que actualmente no se utiliza, puede activar interfaces adicionales. Puede que quieras hacer esto si quieres rastrear los controladores de otras plataformas. Sin embargo, en este momento sólo una interfaz puede renderizar a un HMD.


  • bool is_stereo ( )

Devuelve true si la salida actual de esta interfaz está en estéreo.


  • void uninitialize ( )

Apaga la interfaz.