En esta segunda parte voy a tratar la Realidad Virtual Inalámbrica renderizada desde la propia consola pero reproducida en el HMD. Por lo que no deja de ser una solución de Cloud Gaming Local, acordaos por ejemplo como PS4 puede hacer de servidor en un Cloud Gaming local a través del Remote play y que luego llevaron a otro dispositivos.

La patente que he comentado en la entrada anterior tiene una versión renovada y más reciente, el contenido de la misma es exactamente igual, aunque tiene una serie de cambios leves prefiero referirme a la versión más nueva.

La FIG. 1 ilustra un sistema para la interacción con un entorno virtual a través de una pantalla montada en la cabeza (HMD), de acuerdo con una realización de la divulgación. Se muestra un usuario 100 usando una pantalla montada en la cabeza (HMD) 102. El HMD 102 se usa de manera similar a anteojos, gafas o casco, y está configurado para mostrar un videojuego u otro contenido al usuario 100. El HMD 102 proporciona una experiencia muy inmersiva para el usuario en virtud de su provisión de mecanismos de visualización muy cerca de los ojos del usuario. Por lo tanto, el HMD 102 puede proporcionar regiones de visualización a cada uno de los ojos del usuario que ocupan grandes porciones o incluso la totalidad del campo de visión del usuario.

En la realización ilustrada, el HMD 102 está conectado de forma inalámbrica a una computadora 106. La computadora 106 puede ser cualquier computadora de propósito general o especial conocida en la técnica, que incluye pero no se limita a, una consola de juegos, computadora personal, computadora portátil, computadora de tableta, dispositivo móvil, teléfono celular, tableta, thin client, decodificador, dispositivo de transmisión de medios, etc.

En una realización, la computadora 106 puede configurarse para ejecutar un videojuego y emitir el video y el audio del videojuego para renderizar por el HMD 102. Un transceptor 110 está configurado para transmitir de forma inalámbrica el video y el audio del videojuego al HMD 102 para reproducirlo. El transceptor 110 incluye un transmisor para la transmisión inalámbrica de datos al HMD 102, así como un receptor para recibir datos que el HMD 102 transmite de forma inalámbrica.

¿Y que es un Transceptor? Bueno, todos tenemos un tranceptor o varios en el bolsillo.

Un transceptor es un dispositivo que cuenta con un transmisor y un receptor que comparten parte de la circuitería o se encuentran dentro de la misma caja

Por cierto… Fijaos en la ilustración que se ha filtrado en las últimas horas, en un pequeño detalle…

Tenemos una pequeña caja encima de la consola, su presencia en el diagrama nos indica que aparte de la consola hay otro dispositivo conectado a la misma consola, lo cual coincide con la descripción del transceptor de la patente.

Lo primero que nos interesa es ver como esta todo organizado… Y eso lo vemos en la FIG. 10

Lo primero que podemos observar es que el HMD es referido como el HMD 102, recordemos como en la anterior entrada hemos definido al HMD 102 por lo que no voy a repetirme en sus capacidades, el diagrama de la FIG. 10 esta simplificado pero lo que llama la atención son varios detalles en la parte del HMD

El HMD tiene un transceptor, el cual es el encargado de comunicarse directamente con el Transceptor de la caja conectada a la consola. El Tranceptor envia señales de radio… ¿Hacía donde? Pues hacía la unidad HMD para localizarla.

La unidad HMD tiene varias antenas colocadas en una curiosa configuración.

El transceptor no solo se utiliza para enviar datos sino para conocer la posición del HMD en cada momento funcionando calculando el vector en el espacio entre la antena activa del HMD y la unidad conectada a la consola y haciendo una predicción de cara al siguiente fotograma de donde va a estar el jugador llevando el HMD.

La predicción es realizada por una unidad de función fija en la consola principal llamada «Beamforming Processor», la cual evalúa una serie de datos captados por los sensores del propio HMD y el dispositivo conectado a la consola.

Gracias a estos datos el dispositivo sabe con que antena de la unidad HMD se ha de comunicar para realizar el tracking, con tal de tener una mayor precisión se puede utilizar el mismo tracking Outside-In del PlayStation VR.

Eso si, este método no utilizaría la cámara de tiempo de vuelo como la del HMD sino que por motivos de compatibilidad hacía atrás utilizaría la del PlayStation VR actual.

En algunas implementaciones, la velocidad de actualización de la formación de haces es del orden de aproximadamente 10 a 100 milisegundos y, por lo tanto, la velocidad a la que se predice la ubicación futura del HMD coincide con la velocidad de actualización de la formación de haces. En algunas implementaciones, la velocidad de predicción se configura para que coincida con la velocidad de fotogramas de la cámara, p. 60, 120 o 240 Hz en algunas implementaciones. Por lo tanto, la predicción será predecir la ubicación del HMD en el siguiente cuadro.

Recordemos las especificaciones de la actual PlayStation Camera.

Las cámaras ToF del HMD que he comentado en la entrada anterior son diferentes porque funcionan a un ratio de 60hz y realmente no sirven para el tracking debido al enorme input lag que añaden pero como he comentado en la entrada anterior si que sirven para mapear la estancia, pero eso es un tema aparte.

El transceptor añadido a la cámara nos permite medir de manera rápida la posición del HMD respecto a la cámara de manera más precisa, tiene sentido que la cámara y el transceptor pasen a ser un solo dispositivo.

En algunas implementaciones, la cámara 108 y el transceptor 110 están integrados en el mismo dispositivo, de modo que la cámara y el transceptor tienen una relación espacial fija entre sí, y más específicamente, la captura de imagen por la cámara y la formación de haz de RF por el transceptor son espacialmente conocidos en relación uno con el otro. En tales implementaciones, la posición del HMD se puede determinar a partir de imágenes capturadas por la cámara, y la formación del haz por el transceptor se puede dirigir adecuadamente hacia el HMD sin necesidad de calibración adicional.

¿La forma de hacerlo? De la misma manera que el tracking actual del PS VR, utilizando una luz y si miráis el diagrama de la FIG. 10 veréis que las luces siguen estando en el nuevo dispositivo.

Sobre la cámara y sus cambios hablare más adelante, de momento prefiero continuar con el dispositivo transceptor y centarme en exclusiva, pero para entenderlo antes un poco de teoría.

En una unidad HMD lo importante es el tiempo de fotón que es el tiempo que existe entre que hacemos una acción y ocurre en pantalla, si conseguimos que el tiempo sea de <20ms entonces habremos conseguido algo llamado presencia o tele-presencia. La presencia es el estado en el que el jugador o el espectador tiene la sensación de estar en un lugar, esto con la Realidad Virtual se consigue con una latencia de todo el pipeline entero de menos de 20ms… Es decir todo este proceso:

Por lo que…

Tiempo de Fotón= Input+Render+Stream+Pantalla

Esto es general para todos los sistemas HMD independientemente de la marca de la que hablemos, el Stream en un sistema cableado es la latencia añadida por el cable HDMI o DisplayPort, pero en un sistema inalámbrico la cosa se hace un poco más complicada.

Tiempo de Stream= Tiempo de Codificación+Tiempo de Envió+Tiempo de Descodificación.

El motivo de ello es que el ancho de banda inalámbrico es mucho menor que el ancho de banda con cable, esto hace que sea necesario utilizar formatos de compresión de las imagenes, las cuales van a ser enviadas en forma de bloques a través del transceptor utilizando un mecanismo de codificación y descodificación. De entrada uno podría pensar que la codificación se haría desde la propia consola ya que tiene unidades para ello pero la solución de Sony se va a parecer mucho por no decir que va a ser la misma que la del Wireless del HTC Vive, la idea no es otra que la de conectar la caja con el transceptor en la conexión USB-C donde iría el HMD al conectarse por cable pero que en modo inalámbrico dejaría ese puerto abierto para colocar el Router VR.

Es decir, el router VR va a recibir la imagen final y va a tener que codificarla para su envió al HMD, obviamente no lo hará via WiFi sino utilizando el llamado WiGiG u 802.11ad que da un ancho de banda mucho mayor pero incluso en ese caso hace falta comprimir el stream

Esto lo podéis comprobar en la siguiente tabla:

Es decir, necesitamos un ancho de banda de 11.59 Gbps para el envió de los datos que no tenemos disponible, a simple vista puede parece fácil pero el envio de datos se ha de producir en un periodo corto de tiempo por lo que realmente el ancho de banda necesario sería mucho más grande, el caso es que teniendo un limite de 18ms en el PlayStation VR y teniendo en cuenta que dentro del pipeline hay una serie de elemento de latencia insalvable, el hecho de añadir el stream wireless reduce obviamente el tiempo que tiene la GPU para renderizar la escena dentro del limite de los 18ms.

Lo que hace el transceptor es recibir el fotograma a través del puerto USB 3.1 Gen 2 y codificarlo, pero de una manera particular…

Lo que hace el router VR es codificar la imagen en 4 Streams distintos, que se envían en paralelo, esto significa convertir la imagen de 2560×1440 en 4 imagenes a 1280×720 que se codifican y trasmiten en paralelo… ¿el motivo? Es simple, el tiempo de codificación y de envio se reduce a 1/4 parte y no es esencial si tenemos en cuenta que la latencia en este caso es importante.

Por otro lado la unidad HMD tiene el transceptor en modo receptor, sus 4 antenas cogen cada una la señal de un stream de manera simultanea y envían los datos al descodificador.

El descodificar combina los 4 Streams un uno solo y realiza la descodificación para enviar la imagen a la pantalla del HMD. En realidad el funcionamiento es el mismo que el de los adaptadores inalámbricos que hay disponibles para Vive y Oculus en estos momentos.

El camino contrario, basado en codificar los streams captados por la cámaras de tiempo de vuelo también se produce, si las cámaras están en la misma posición que las antenas y los transceptores entonces tiene sentido, pero dichas cámaras no se utilizarían para el tracking como ya he comentado en la entrada anterior sino para realizar un mapa de la sala en la que estamos, donde en este caso el HMD sería el emisor y el router VR en un pipeline que funcionaría exactamente igual.

La diferencia es que los datos captados por la unidad HMD no serían utilizados para el tracking, teniendo en cuenta la posición de cada cámara en cada momento y tomando el HMD como el punto (0,0,0) de un eje de coordenadas tridimensional se puede crear un mapa de voxeles de toda la estancia a partir de la información capturada por las cámaras. Esto le va a permitir al sistema colocar obstáculos virtuales en modos de juego VR sin cables donde nos podamos mover por la habitación en la que estamos para evitar accidentes.

El proceso de crear el mapa volumétrico de la estancia construido a partir de voxeles que le permita saber al usuario donde se encuentra en cada momento en la estancia. Este mapa de voxeles se puede utilizar para colocar al jugador en el escenario combinando la información con el BVH de la escena de juego, todo ello para aplicar el Audio via Raytracing el cual se vería acelerado gracias a las unidades de intersección de rayos en la GPU…

Es decir, en una experiencia VR inalámbrica o de AR con ello podemos situar el audio de manera muy precisa en la escena y aumentar la sensación de presencia en dichas experiencias gracias a ello.

Ahora bien… ¿Va a incluir Sony el router VR dentro de la caja del PlayStation VR 2? Sinceramente…

Para la experiencia de juego con el PS VR 2 con cables realmente no nos hará falta la cámara, todo el mundo quien tenga un PS VR en esto momentos tiene el kit completo porque es indispensable y lo podrá utilizar en la siguiente consola sin problemas por la compatibilidad hacía atrás.

¿Entonces la cámara utilizada en el Router VR? Con el USB 3.1 Gen 2 tenemos que cada nodo es de 10Gb/s y con los 20Gb/s de emisión tenemos suficiente para 1440p120, por lo que podemos utilizar los dos canales de recepción y asignar uno al menos a la cámara integrada, recordemos que la PlayStation Camera original es USB 3.0 y tiene un ancho de banda de 4.8 Gbit/s, dado que lo dos nodos de recepción serían de 4X en ancho de banda es posible que veamos un aumento considerable de la cámara en cuanto a resolución de entrada, lo que le permitiría aparte del tracking utilizarse en aplicaciones tipo Eye Toy/Kinect con mucha mayor precisión debido a la mayor resolución.

Pero claro, este tipo de aplicaciones sin la unidad HMD vuelven inutil al transceptor para la localización y la metodología de la PlayStation Camera es la más ineficiente de todas y el fiasco del Kinect pues… Lo más seguro es que Sony con tal de disminuir la latencia acabe utilizando una cámara de muy alta frecuencia y desde hace unos años tenemos cámaras que captiran a 960hz y que en la VR de PS5 son ideales.

¿El motivo? En la actual PS VR la cámara que es utilizada para triangular la posición del jugador en cada momento se toma unos 4.16ms en total y funcionando a unos 240hz que es su frecuencia máxima, con 4 veces el ancho de banda podemos hacer que el sistema capture a 960hz y reducir el tiempo de cáptura a 1ms, esta aplicación para la VR tiene más sentido que colocar una cámara con más resolución para una aplicación que no tiene salida en el mercado.

Claro esta que no podemos olvidar que la cámara sirve para posicionar correctamente al jugador en el espacio junto a los datos de los sensores del HMD y no podemos olvidar que el transceptor en muchas aplicaciones recibe los datos de las 4 cámaras del HMD en forma de 4 streams de video distintos a una resolución de 640×480 pixeles cada 16ms que una vez descodificados por el propio transceptor van a ser enviados en bruto a la consola y por tanto van a ocupar parte del ancho de banda de recepción del USB-C, en todo caso no tengo más que añadir.

Esto es todo, como siempre tenéis el Discord y los comentarios de la misma entrada para comentar el contenido de la misma.