Detalles del motor Godot Soporte VR y MR recientemente mejorado

El motor Godot ha realizado recientemente mejoras significativas en su compatibilidad con la realidad virtual y la realidad mixta.

Si no estás familiarizado con él, Godot es una alternativa gratuita y de código abierto a Unity y Unreal. Está técnicamente controlado por la Fundación Godot, una organización sin fines de lucro, pero todo el desarrollo se lleva a cabo al aire libre.

Metafinancia a los veteranos de Godot para mejorar su apoyo a las misiones

Meta está financiando a un grupo de veteranos de Godot para mejorar el soporte de los SDK OpenXR y Quest del motor y crear muestras y documentación de alta calidad.

Bastiaan Olij, el desarrollador principal de soporte XR en Godot, compartió un desglose de las mejoras. Olij dice que “varias” de estas mejoras “se beneficiaron enormemente” del apoyo financiero y técnico de Meta anunciado a principios de este año, con los resultados “mejorando la experiencia no sólo para los usuarios de Meta Quest, sino también para otros sistemas XR”.

Se produce dos semanas después de que un ingeniero de Meta lanzara una adaptación del editor Godot para Horizon OS, lo que permite el desarrollo de juegos completos de forma completamente independiente en los auriculares Quest 3 y Quest Pro.

El motor Godot ahora está disponible de forma independiente en Quest 3 y Pro

El motor Godot ahora está disponible en Horizon OS, lo que significa que puedes desarrollar juegos completos de forma completamente independiente en Quest.

Aquí están todas las mejoras recientes de Godot XR que Olij describió:

Mejoras en la arquitectura XR

Sincronización de cuadros mejorada

“Cuando OpenXR se implementó originalmente en Godot 3, había limitaciones en el orden en que se llevaban a cabo ciertas acciones. La mayor parte de la comunicación con OpenXR estaba vinculada al motor de renderizado, lo que hizo que Godot dependiera más de algoritmos predictivos para posicionar entidades rastreadas, como los controladores. Originalmente Godot 4 heredó este enfoque.

Como parte de la versión Godot 4.3, gran parte de esta lógica se rehizo para interactuar correctamente con OpenXR. Godot ahora informa correctamente a OpenXR cuando comienza a procesar un nuevo cuadro y obtiene datos de pose para las entidades rastreadas con el posicionamiento previsto para el cuadro actual.

Estandarización de AR transparente y de paso

“El paso a través es un mecanismo en el que las cámaras de vídeo de un casco de realidad virtual graban el mundo real y presentan esta vista del mundo real como fondo dentro de nuestro HMD, convirtiendo el casco en un dispositivo AR. Diferentes cascos implementan esta característica de diferentes maneras y esto causó dificultades para desarrolladores que apuntaban a múltiples dispositivos.

Si bien el paso a través permite algunas cosas interesantes que no son posibles con los dispositivos AR ópticos, para la mayoría de los desarrolladores de aplicaciones centradas en AR no debería tener la tarea de escribir código diferente para admitir todos estos dispositivos.

Por lo tanto, hemos estandarizado este enfoque mediante la utilización de modos de combinación de entornos OpenXR y moviendo el código específico de las plataformas al complemento de proveedores de OpenXR”.

Estandarización del seguimiento de manos, rostro y cuerpo

“El seguimiento manual ha sido compatible con Godot desde hace mucho tiempo, sin embargo, se han realizado mejoras para garantizar un mejor soporte multiplataforma, incluida la estandarización entre OpenXR y WebXR. OpenXRHand El nodo ha quedado obsoleto, a favor del nuevo. XRHandModifier3D nodo que está diseñado para funcionar con cualquier sistema XR, no solo OpenXR.

Se ha agregado compatibilidad con el seguimiento facial y los datos de seguimiento facial se obtienen de varios dispositivos. Godot ahora admite el estándar Unified Expressions para manejar datos de seguimiento facial.

Se agregó soporte de seguimiento corporal utilizando el esqueleto humanoide de Godot como base, lo que permite que varios dispositivos de seguimiento corporal aprovechen la lógica de retargeting de Godot.

Si bien estos tres sistemas se implementaron bajo el nombre XR, sus casos de uso no se limitan a XR. Ya se han creado varios complementos utilizando este sistema para incorporar datos de seguimiento corporal desde varias soluciones de seguimiento corporal que van desde Mocap óptico hasta trajes de seguimiento de cuerpo completo”.

Representación foveada de Vulkan mejorada

“El renderizador de compatibilidad utiliza directamente el soporte de renderizado foveated de OpenXR, pero esto tiene varias limitaciones y no es aplicable fuera de OpenXR.

En el renderizador Vulkan hemos tenido soporte de sombreado de velocidad variable por un tiempo, lo que permite aplicar el renderizado foveado en Godot sin los mismos inconvenientes.

En la última versión se han aplicado varias mejoras que brindan más control sobre el mapa de densidad utilizado y permiten que el seguimiento ocular impacte el mapa de densidad y garantice una representación de calidad en el punto focal de los usuarios”.

Soporte WebXR mejorado

“El soporte de WebXR en Godot está experimentando mejoras continuas, en particular la adición de soporte de seguimiento manual, pero también soporte para MSAA y una serie de mejoras y correcciones de errores menores. Nuestra implementación de WebXR ahora también admite aplicaciones AR”.

Soporte mejorado de transferencia y seguimiento manual

“Además de la estandarización del paso a través y el seguimiento manual en Godot, se implementó soporte para muchas características adicionales que Meta proporciona en el complemento Godot OpenXR Vendors.

Para el paso a través, esto incluye aplicar varios filtros a las imágenes de paso, como ajustar el brillo, el contraste y la saturación, asignar los colores a otros valores o incluso proyectar el paso a través de una geometría personalizada, para traer solo objetos específicos del entorno físico del usuario a una experiencia que de otro modo sería de realidad virtual. Consulte el tutorial Meta Passthrough para obtener más información.

Para el seguimiento de las manos, los desarrolladores ahora pueden acceder a mallas de manos, formas de colisión para las manos y realizar un seguimiento de gestos simples, como detectar pellizcos entre el pulgar del usuario y cualquiera de los otros dedos. Consulte el tutorial de Meta Hand Tracking para obtener todos los detalles sobre estas funciones”.

Soporte de capa de composición

“Las capas de composición son una característica estándar en OpenXR, que permite a los desarrolladores agregar “paneles” flotantes (ya sean planos o curvos) que tienen contenido 2D renderizado desde un Godot SubViewport.

El resultado de este enfoque es un detalle mucho más nítido del contenido 2D en comparación con la aplicación del mismo contenido como textura en una malla 3D.

Esto es ideal para menús de juegos, visualización de medios o pantallas frontales. El texto pequeño es especialmente más legible cuando se utiliza esta técnica.

W4 Games agregó tanto la implementación principal como extensiones metaespecíficas, que permiten aplicar mayor nitidez o supermuestreo, combinación alfa avanzada o marcar capas de composición particulares como si tuvieran “contenido seguro”. Consulte el tutorial Capas de metacomposición para obtener más información sobre estas funciones metaespecíficas”.

Descubrimiento de escenas y anclajes espaciales

“Estas dos características estrechamente relacionadas son posiblemente la parte más emocionante del trabajo realizado hasta ahora. Scene Discovery de Meta permite que Quest escanee su entorno y proporcione a su juego información sobre el mundo real.

Esto puede permitirle colocar objetos en las paredes, en los muebles o hacer que los NPC interactúen con el entorno real.

Los anclajes espaciales te permiten hacer esto persistente. Cree un ancla espacial que haga referencia a un lugar en su pared y podrá mostrar una pantalla virtual allí cada vez que el usuario regrese a su aplicación.

Consulte los tutoriales de Meta Scene Manager y Meta Spatial Anchors para obtener más información.”

Compatibilidad con dispositivos XR nuevos/mejorados

Pico 4

“Godot ha tenido soporte para los auriculares PICO por un tiempo, pero en el último año se realizaron mejoras. PICO adoptó completamente el cargador oficial de Android Khronos para OpenXR y dejó de usar su cargador personalizado. Godot apoya completamente el nuevo enfoque”.

Salto Mágico 2

“Recientemente también se agregó soporte para el ecosistema Magic Leap al complemento del proveedor. Magic Leap se distingue de otros dispositivos Android independientes por ser un dispositivo AR óptico y ejecutar hardware AMD. En estos dispositivos es necesario utilizar el renderizador móvil Vulkan”.

¿Qué viene después?

Olij dice que deberíamos “estar atentos” a más mejoras y características nuevas en el futuro cercano, y compartió algunas de las cosas en las que se está trabajando.

Hilo de renderizado separado

“Hay más trabajo por hacer en Godot 4.4 para que esto sea completamente viable, pero las bases están en su lugar. Como parte de la implementación de la lógica de sincronización de fotogramas mejorada, hicimos una gran limpieza del código XR para asegurarnos de que se ejecute correctamente. cuando el renderizado ocurre en un hilo separado, especialmente para aplicaciones XR, esto nos acerca a garantizar una velocidad de fotogramas estable, incluso en dispositivos independientes”.

Compatibilidad con tintas Logitech MX

“No es un auricular nuevo, sino un periférico, la tinta MX es un lápiz óptico con seguimiento posicional que se puede usar con un Meta Quest. El soporte se fusionó con el maestro recientemente y este dispositivo será compatible en la próxima versión Godot 4.4. Estamos buscando para soportar esto en una futura versión del parche 4.3.”

Auriculares HTC Vive independientes

“HTC proporcionó al equipo unidades HTC Vive XR Elite, lo que nos permite garantizar que Godot se ejecute en dispositivos independientes de HTC. También estamos trabajando junto con HTC para mejorar la experiencia en estos dispositivos”.

Leer más
Back to top button