- Este debate tiene 0 respuestas, 1 mensaje y ha sido actualizado por última vez el hace 3 años, 11 meses por .
-
Debate
-
Supersampling Vs Encode Resolution
(Con permiso del Refresco de Pantalla y el Encode Bitrate)
En el título iba a poner “Teoría” sobre supersampling, etc, etc… pero es más una conclusión a la que he llegado tras leer artículos, ver reviews y participar en los propios foros de Oculus. Esto quiere decir que, aunque sean conclusiones a la que he (hemos) llegado con información de antemano y que antes de publicar este post hemos probado con decenas de combinaciones, puede que no sea la verdad absoluta, en cuyo caso no tendré problema en volver y ampliar o retocar este post.
Si venís buscando un post técnico con valores exactos y datos específicos, ya os digo que no es lo que buscáis, este post va dirigido principalmente a gente que quiere compartir y comparar los resultados de sus pruebas o simplemente evitar hacerlas para conseguir el mejor resultado posible por la vía rápida.
Así que, con esta introducción, pido disculpas y me disculpo a la vez por si uso alguna comparativa poco apropiada o inexacta, ya que no es el objetivo real del artículo.
¿Por qué ahora todo esto?
Empecemos por saber porque, tras tantos años usando visores de VR, ahora nos encontramos en este punto de dudas y nuevos conceptos y la razón es que Oculus Quest no transmite la señal de vídeo directamente desde nuestra gráfica al visor, si no que previamente la comprime convirtiéndola en datos que envía a través de un cable USB al visor para que este la descomprima y nos la muestre.
Por culpa de este sistema, más o menos ingenioso (en eso no vamos a entrar) estamos peleando con 3 factores que influyen en el resultado de la imagen que vemos en el visor, en lugar de solo pelear con el ajuste de Supersampling como ha sido hasta ahora.
Ya que he comentado lo de la señal de vídeo que se envía codificada, aprovechamos la comparación porque, por poco que hayas oído hablar de archivos de vídeo (Películas o series descargadas habitualmente) sabes que hay factures que influyen en su peso y calidad, como por ejemplo la resolución o tamaño del vídeo.
Pues bien, esto mismo es lo que pasa en las Quest y su sistema de envío de vídeo desde nuestro PC con el cable Link, que tenemos hasta 3 factores (4 en realidad) que influyen en la calidad del resultado y con los que tenemos que jugar.
Imagina si con uno es fácil y con dos se complica, cuantas combinaciones puedes hacer con 3 valores (ok 4..) a modificar.
Vamos por partes
Refresco de Pantalla
Empecemos por el 4º que es sencillo de explicar y descartemos pronto para centrarnos en los 3 importantes, el Refresco de Pantalla en hercios HZ que podremos ajustar en 90, 80 o 72. Esto no tiene misterio, son los “FPS” que veremos en el visor, a más refresco más naturalidad del movimiento pero más carga y peso del vídeo que se envía.
Encode Bitrate
Luego tenemos el Bitrate. Si te es familiar el renderizado de vídeo conocerás este parámetro y lo mucho que influye en el peso final de tu archivo de vídeo. Son los Megabits por segundo que se envían, a más bitrate, más “caudal” de datos pasa por el cable y por tanto, cada fotograma de tu vídeo, podrá tener más info que se traduce en mejor calidad. Actualmente Oculus Link viene de serie a 150 Mbps y aunque Oculus Debug Tool nos permite subirlo hasta 500 Mbps, está comprobado por la consola del propio ODT que la orden que envía a la configuración de las Quest es de 288 Mbps.
Así que tanto si pones 288, como si pones 300 como si quieres dejarlo en 500 por si algún día lo desbloquean sin previo aviso, estarás configurando tus Quest para que reciban el mayor ancho de banda posible a día de hoy.
Perfecto ya tenemos 2 de 4 listos, vamos bien…
Supersampling
El Supersampling. Este ya es viejo conocido, pero bueno, para los nuevos y aprovechando el símil de la película de vídeo que nos hemos descargado, si los Hz eran los FPS (imágenes por segundo) y los Mbps el bitrate que nos dice cuanta info puede tener cada una de esas imágenes por segundo, el supersampling es como si pudiésemos cambiar la densidad de píxeles de nuestro monitor, o con un ejemplo más práctico, si esa peli la vamos a ver en un monitor normal o una TV 4K (Vale, suponiendo que al final son del mismo tamaño, pero no nos compliquemos ¿Vale?)
Si tu tienes una película con buena calidad, siempre la verás mejor, más detallada y nítida en una TV 4K que en un monitor 1080p y por supuesto, al contrario.
Encode Resolution
Encode resolution. Esta es nueva… pero fácil de entender. En el ejemplo de antes hemos hablado de “una película con buena calidad”, pues bien, el encode resolution (o resolución de las texturas) nos dice que calidad tiene esa película que vamos a enviar por el cable a nuestras Quest. No es lo mismo un archivo MKV en 4K que si nos bajamos una peli en 720p ¿que no?
Llegados a este punto ¿Sigue alguien despierto?
Ya tenemos todos los ingredientes, podemos mejorar la imagen subiendo los FPS o priorizar el rendimiento bajándolos. Podemos abrir un buen canal para que pase todo ese bitrate continuo de datos, aunque esperemos que lo puedan mejorar. Tenemos una peli que podemos hacer en alta calidad o bajarle resolución y por último tenemos el superpoder de aumentar la densidad de píxeles de nuestra pantalla y que funcione similar a paneles con más millones de píxeles de lo que tiene.
Pero lo más importante para que todo funcione a la máxima calidad que pueda ofrecer sin que haya un coste excesivo de recursos, es que todo debe ir ajustado en proporción, porque si no, es cuando empezamos a hacer pruebas como locos sin ver un cambio notable en la visualización de la imagen.
Y aquí los que “más pintan” son el Supersampling y el Encode resolution. Siguiendo con el símil del archivo de vídeo:
Para obtener una buena calidad de imagen, o al menos la mejor que podamos, debemos tener una peli a buena resolución, 4K por ejemplo y proyectarla en una buena TV 4K.
Como es lógico, por muchos píxeles que tenga nuestra TV, si nos bajamos una peli a muy baja calidad, la TV no va a hacer milagros y aunque se usen cientos de píxeles de nuestra TV para representar uno solo de nuestra peli, seguiremos viéndolo igual de mal.
Y al revés pasa lo mismo, si tenemos una película en 4K pero nuestro monitor es de baja resolución, no vamos a poder ver todos esos detalles porque no hay píxeles para representarlos.
Por esto pasa que muchas veces aumentamos uno u otro valor sin compensar con el otro y aunque podemos ganar en nitidez, como en los casos que aumentamos mucho el SS, en realidad será una sensación, porque veremos supernítidas, unas texturas superborrosas.
Por esto, programas como OTT muestran configuraciones donde se modifica a la par los 2 valores, porque es tontería y consumo inútil de recursos tener uno de los dos muy por encima del otro.
Casos prácticos
Hablando ya de valores prácticos, En mi caso por ejemplo para un encode resolution de por ejemplo 3664 (Que ya recomendamos desde la v23), es completamente absurdo meter un SS de 1.5 o 1.7, porque la resolución de la textura es la que hay, 3664, por muchos píxeles que “le metas a tu pantalla” para representarla. Y por esto mismamente no notamos apenas nada por mucho SS qué le vamos metiendo por ODT, OTT, Oculus Home o SteamVR, da igual, unos lo harán mejor que otros (por la relación de valores y el píxel cuadrado) pero al final si la peli que te has descargado es de mala calidad, con mala calidad la vas a ver.
Una pequeña aclaración
Para terminar matizar que, como he dicho antes, es verdad que se puede apreciar mejora sobrepasando mucho con SS la resolución de las texturas, porque es verdad que se gana en otros aspectos muy sutiles, aunque es exponencial el uso de recursos frente a esas mejoras y si tu gráfica lo soporta bien, pues adelante, pero que sepas que si tienes una resolución baja (y hasta que la IA entre en juego…) de donde no hay, no se puede sacar (Como dicen en mi pueblo ).
Con dibujitos para los que les cansa leer
Os dejo con esta imagen que no es “técnicamente correcta” pero que espero que sirva para explicar esta relación entre Supersampling y Resolution Encode.
Simplemente es para explicar que con un Encode Resolution y Supersampling óptimos conseguimos la mejor visualización (Opción 1) y que si tenemos un Supersampling bajo (Opción 2) o un encode resolution bajo (Opción 3) el resultado será malo.
Al mismo tiempo, por mucho Supersampling que le metamos, si no podemos aumentar más Encode Resolution (Opción 4) el resultado no mejora de los valores óptimos de la opción 1, pero si que consumimos muchos más recursos.
¿Cuál es el límite que he encontrado hasta el día de hoy?
Mis mejores resultados (hasta el día de hoy) han sido con:
ODT Oculus Debug Tool
Distorsion curvature: LOW (Es la que ofrece mejor calidad, aunque afecta más a la periferia o tamaño del punto dulce)
Encode Resolution Width: 3664 (o 3696 que me permite ODT o 3648 que sugiere OTT, poco cambia entre las 3 opciones)
Encode Bitrate (Mbps): 288 (o ponemos 300 o 500, ahora mismo da igual porque envía 288 como máximo)
Oculus Home
Frecuencia de actualización: 72 Hz (Los FPS)
Supersampling: 1.3 (4848×2448 o el anterior 1.3, ya que hay dos, pero no noto mucha diferencia)
SteamVR
Supersampling: 1.0
Como medir estas apreciaciones visuales
Para medir esto, usaremos el entorno de SteamVR de Real o Virtual, porque al ser un entorno que carece de opciones gráficas como las pueda tener un juego, nos sirve para unificar las sensaciones de todos.
Una vez en el entorno de SteamVR para las pruebas, colocamos el aro de posición a partir de la posición Nº20 y nos fijamos en los textos del segundo panel empezando por la derecha.
Aquí mi apreciación es la siguiente:
- Del tamaño de texto de abajo del todo, el tamaño de letra 24, lo leo perfectamente nítido.
- Del tamaño de letra 18, el penúltimo texto, lo veo borroso y algunas palabras largas como “desahogándome” son complicadas de leer.
- Del tamaño de letra 16 lo veo muy borroso en general y solo adivino las palabras más simples. Se podría intuir el texto, pero no leerlo con claridad.
- Debes estar registrado para responder a este debate.