Saltar la navegación

9. Software

Como cada tecnología nueva que surge, cada fabricante empieza ofreciendo a los programadores una interfaz de programación específica para su producto. Esto ocurrió también con los visores de realidad virtual y realidad aumentada. Oculus, HTC, Sony y otros fabricantes crearon API específicas para sus productos. Para el programador, el desarrollo de aplicaciones multiplataforma supone hacer un trabajo específico para cada dispositivo que quiera soportar.

En 2017, el grupo Khronos anunció OpenXR, un estándar gratuito de código abierto para el acceso a dispositivos de realidad virtual y realidad aumentada. OpenXR es una propuesta de API que permite a los desarrolladores crear aplicaciones de realidad virtual y realidad aumentada que funcionan en múltiples dispositivos y plataformas. Su objetivo es alcanzar un alto rendimiento por lo que las aplicaciones se ejecutan directamente en el sistema operativo del dispositivo. Para ello es necesario que dicho dispositivo ofrezca soporte a la API de OpenXR. Afortunadamente, la mayoría de los fabricantes ofrecen soporte OpenXR en sus dispositivos.

Como desarrollador, las dos opciones que se plantean son:

Empleo de las múltiples API específicas de cada dispositivo que se quiera soportar.

Esto supone una alta carga de trabajo, posiblemente dejando de soportar dispositivos menos extendidos. A cambio empleamos la API que el fabricante concibió específica para su producto, lo cual se supone que ofrecerá el máximo nivel de eficiencia.

Empleo del estándar OpenXR.

El desarrollador emplea una única API para todos los dispositivos (al menos aquellos para los que los fabricantes hayan incorporado soporte OpenXR, que son la mayoría), lo cual reduce mucho la carga de trabajo. Esta es la opción recomendada, aunque en algunos casos es posible que sea necesario incorporar extensiones adicionales para controlar hardware que aún no esté completamente contemplado en OpenXR.

Otra opción para el desarrollo multiplataforma es el empleo del estándar WebXR, propuesto por el W3C, que permite la ejecución de aplicaciones de realidad virtual y realidad aumentada directamente en un navegador web moderno. Cualquier dispositivo que tenga un navegador compatible puede ejecutar esas aplicaciones sin necesidad de otro software adicional. Ofrece un rendimiento menor que el que se puede conseguir con un desarrollo nativo como el que propone OpenXR.

En cuanto al rendimiento, hay que tener en cuenta que una aplicación de realidad virtual necesita generar el doble de imágenes (una por cada ojo) por lo que hay que tener muy en cuenta las tareas de optimización necesarias para lograr el rendimiento adecuado.