El 3D para PS3 explicado en detalle

    Algo me preocupa desde que se anunció que todas las PS3s eran capaces de generar 3D. El tema es que la versión de la implementación de HDMI en la PS3 es 1.3a (desde el punto de vista del consumidor no hay diferencia entre las versiones 1.3a/b/c). De hecho, el retraso en la finalización de la especificación contribuyeron al retraso en el lanzamiento de la PS3. El laser semiconductor azul-violeta del lector Blu-ray también fue un problema, pero dejemos esa historia para otro día.

    El hecho de que la PS3 “solo” tenga HDMI 1.3a (digo “solo” porque el rival favorito de todos de la PS3, la Xbox 360, tiene HDMI 1.2 si es que eres afortunado como para tener una con HDMI) es que el primer estándar HDMI en soportar contenido 3D es oficialmente el HDMI 1.4.

    Llegados a este punto, dejadme decir que el organismo que define el estándar HDMI no permite que los licenciados para HDMI usen números de versión en sus productos porque quieren que los consumidores vean a HDMI como un estándar único. Sin embargo, hay diferencias entre las diferentes versiones HDMI. Por ejemplo, HDMI 1.4 también permite tener un canal de audio de retorno y Ethernet a través de HDMI. Bastante confuso, ¿no?

    Pero me estoy yendo del tema. Afortunadamente para nosotros, los usuarios de PlayStation 3, HDMI 1.3 tiene la misma velocidad de reloj que 1.4. Esto significa que es capaz de transmitir los importantes datos de video igual de rápido. HDMI 1.2 va a algo menos de la velocidad de 1.4.

    Para la PS3, el firmware 3.30 incluyó la capacidad (en todos los modelos de PS3) para sacar 3D en dos de los modos de video definidos por la especificación 1.4: 1920x1080p@24Hz y 1280x720p@60Hz. Poníendolo en términos jueguiles, pensad que un Hercio (Hz) equivale a Fotogramas Por Segundo (FPS). Sony simplemente ha implementado el soporte para esos modos en el firmware y el HDMI de la PS3 es lo suficientemente rápido como para trabajar con ellos.

    Notad además que ambos modos de video tienen la “p” de Progresivo y no la “i” de Interlaced (entrelazado). Esto es importante porque cada vez que un fotograma se muestra es enviado a la pantalla como un fotograma completo en vez de que un fotograma tenga solo las lineas impares mientras que el siguiente solo tiene las líneas pares.

    Esto entra en conflicto con informaciones anteriores, que pueden ser trazadas a un único post, donde se indica que los dispositivos HDMI 1.3 sólo pueden ser capaces de mostrar formatos 3D entrelazados. En ese artículo de blog no se incluye un enlace a la fuente, sinó que simplemente se atribuyen los comentarios de que los dispositivos 1.3 pueden ser actualizados al presidente del HDMI Licensing Group.

    Por lo tanto, la PS3 puede sacar video 3D 1080p y 720p. ¿Eso está genial no? No del todo parece. Las películas en Blu-ray pueden usar el modo 1920 x 1080 p@24Hz. Los juegos 3D están restringidos al modo 1280 x 720 p@60Hz, cosa que tiene sentido. ¿Podriais imaginar lo que nos quejaríamos sobre los fotogramas por segundo si el GT5 corriera a 24 fotogramas por segundo? Desde luego, el corolario es que GT5 solo correrá a 1080p en 2D y no en 3D.

    Mientras que los juegos 3D se enviarán a tu TV/proyector/pantalla holográfica a 720p de resolución y 60 FPS, esto no sinifica que serán renderizados a esa resolución o fotogramas por segundo. Todos podemos pensar en ehemplos de juegos que usan resoluciones sub-720p y menos de 60 FPS, hecho que es aún muy común en esta generación.

    (Para no repetir un debate anterior, 30 FPS es una elección común porque 30 es el número que resulta si divides 60 por el primer entero positivo mayor que 1 (ej. 2). Y empezamos con 60 porque la velocidad de refresco estándar de TVs NTSC era 60Hz, porque la frecuencia de la red eléctrica estadounidense era 60Hz, etc.)

    30FPS sería aún más difícil para los desarrolladores en títulos 3D. Es una simple cuestión de matemáticas. Para una imágen 720p 2D, el juego necesita renderizar 921.600 píxeles por fotograma (1280 x 720). Para mantener esta velocidad y la resolución de un juego en 3D hay que duplicar el número de píxeles por fotograma, porque cada ojo necesita su propia imágen, resultando en 1.843.200 puntos de color que necesitan ser dibujados.

    Esto es un montón de trabajo extra que debe ser realizado en los pocos milisegundos disponibles para dibujar el fotograma. No es una duplicación del trabajo, por eso, porque parte del procesamiento del fotograma (ej. el renderizado de los mapas de sombres y puntos de luz) puede ser realizado antes de que se rendericen las imágenes para cada ojo.

    Sin embargo, el número de píxeles simples no es lo único que impactará en la decisión por parte del desarrollador. Donde se ve un fotograma sencillo de video 3D 720p, salido de la PS3 60 veces por segundo, en realidad se trata de un tamaño de 1280 x 1470 píxeles. Aquellos que seáis más rápidos en matemáticas os habréis dado cuenta que 2 x 720 es 1.440 y no 1.470. ¿Qué está pasando?

    Esas 30 filas horizontales extra es la separación entre las dos imágenes para los ojos izquierdo y derecho. ¿Por qué importa esto? Es importante porque el buffer de fotogramas interno en el que el juego dibuja ahora es 1280 x 1470 píxeles de tamaño en vez de 1280 x 720, cosa que significa que, a su vez, se requiera usar más del doble de la memoría de PS3 para almacenarlo.

    (Otro comentario relevante en los juegos 3D para la Xbox 360, es que sacar video 3D disminuirá la ventaja que tiene la 360 debido a la presencia del bufer local EDRAM de 10Mb que muchos desarrolladores para esa consola usan a menudo como buffer de imágenes para accelerar su acceso)

    Si los desarrolladores para PS3 sufren para conseguir que el motor de su juego consiga llegar a los niveles necesarios para llenar el buffer de fotogramas con imágenes 3D a resolución 720p completa, siempre pueden optar en permitir que sea el hardware de PS3 el que escale las imágenes para ayudar. La PS3 puede solo puede escalar la resolución horizontal y ejemplos de uso los encontramos en títulos como el WipEout HD, donde la resolución horizontal se diminuye de 1920 a algo tan bajo como 1280 para poder mantener la velocidad en 2D de 1080p@60FPS.

    Las resoluciones alternativas que los desarrolladores pueden adoptar para los juegos 3D son 1024 x 1470, 960 x 1470, 800 x 1470 y 640 x 1470. Esta última es interesante porque significa que la resolución horizontal es inferior a la vertical. Ahora considera lo ancha que es la pantala de TV y lo alta que es, teniendo en cuenta que todas las TV 3D son de pantalla panorámica, e intenta imaginar como quedaría la imagen final.

    Crucialmente, la resolución inferior permita que el buffer tenga un tamaño de 940.800 pixeles, que solo es fraccionalmente superior a los 921.600 píxeles requeridos para un gotograma 2D 720p. A su vez, esto significa que el desarrollador no necesita usar mucha más memoria para el buffer de imágen en el ya saturado uso de la memoria de la PS3. Es por eso que decidieron escoger una resolución horizontal tan baja.

    Otros puntos adicionales a destacar es que la PS3 ahora puede saber mediante HDMI si la televisión soporta 3D (cosa que es esencial) y cuál es el tamaño de la pantalla de TV (importante para determinar el número de desplazamiento parallax, o la compensación horizontal entre las vistas de cada ojo, requeridos para renderizar la imágen 3D). Esperemos que como se está haciendo todo esto mediante incorporaciones de nuevas partes en el protocolo de comunicaciones HDMI, aquellos de vosotros que tengas amplificadores/receptores HDMI entre vuestras PS3 y la TV probablemente probablemente no tengáis que actualizar dichos dispositivos también.

    La presentación de desarrollo también sugiere que el 3D siempre será opcional, y que los juegos incluirán una barra para definir “la fuerza del 3D”, que probablemente sea una versión de software de la barra que se encuentra dentro de la tapa de la 3DS, la nueva consola de Nintendo.

    Si tenéis coraje y os sentís valientes, y os van los conceptos técnicos raros como “stereoscopic frustrum culling”, “window violations”, los desplazamientos interaxiales y de confergencia, y las transformaciones matriciales necesarias para generar una matriz de proyección asimétrica, podéis ver la presentación para los desarrolladores sobre el 3D aquí (en inglés).

    Comentarios

    1. Basicamente, no se puede tener 3D en FullHD (1080p) y 60 fotogramas por segundo ya que la PS3 no tiene suficiente memoria. Si que puede haber 3D con 720p, bajando la resolución lo suficiente como para poder generar las dos imágenes por fotograma necesarias para el 3D.

    2. Es logico que se tenga que bajar resolucion, para poder correr los 60FPS; mejor esto que ver los juegos submostreados! Aunque como bien dices, estamos acostumbrados a no dar el maximo con algunos juegos de ultima gen, que podrian dar mas de si… 🙁

    3. El GT5 va ha 60 fps? yo no me lo creo, ya que a los graficazos que tiene le añades 16 coches en patalla O_o.
      Y respecto a la noticia practicamente no entendía nada XD.

    Deja un comentario

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *