Ir al contenido principal

Deferred Rendering en Killzone 2

Algo que ya sabemos es que por Internet pululan muchas "noticias" que en realidad no son noticias, sino artículos de opinión salidos de blogs como éste. Esto es un blog, y no pretendo que sea nada más. El caso es que no deja de sorprenderme que en sitios como News for Gamers pongan cosas que ni son "News" ni son nada. Pongo un ejemplo que me dejó perplejo la semana pasada: Killzone 2: Smoke and mirrors from a CGI artist.
Lo primero avisaros que no hace falta que perdáis el tiempo leyendo el artículo. Básicamente, un supuesto "artista" (en cierto sentido, es un verdadero "artista") deja por los suelos a Killzone 2, en cuanto a gráficos se refiere. Cito textualmente una de sus explicaciones:

"The first thing that caught my eye was that the game is shadow cheating, a very sad sad technique that dates back to the PS1 days. Shadow cheating is where the shadows in the game are not being generated by a real light source. They are faked by painting a dark shadow with the texture map. If you do not believe me put in the game as you read my comments and see for yourself. "

Sí, sí. Te creemos. Yo lo primero que pensé al jugar la demo fue, "ostias! una PS1!"...

Por los comentarios, parece que la gente no le hace mucho caso, pero no deja de dejarme mal sabor tanta desinformación... No voy a perder el tiempo escribiendo comentarios al blog, pero por lo menos dejo en el mio mi opinión.

1. "shadow cheating".... ejem. Este artista no se ha dado cuenta que todos los gráficos por computador consisten en hacer trucos. Sin trucos, no existirian los gráficos en tiempo real. Incluso complejas simulaciones gráficas usan algún que otro truco...
2. las luces tienen mala pinta en Killzone 2??? Lo mejor de Killzone 2 es la iluminación. Killzone 2 usa una técnica llamada Deferred Rendering, o Deferred Shading. En el libro que comenté en un post anterior, Real Time Rendering 3a edición, precisamente usan a Killzone 2 de ejemplo en el capítulo de Deferred Rendering. También tenéis un documento de una conferencia en la página de Guerrilla Games.

Básicamente, en vez de hacer los cálculos de luz "hacia delante" (forward), los retrasan hasta el final (deferred). Los típicos algoritmos calculan iluminación por cada polígono, incluso si no es visible. Contra más luces pongas, más lento va todo. En cambio, usando "deferred rendering", lo que se calcula es información (albedo, normales, etc., los G-buffers) en el espacio de coordenadas de la imagen final (Screen-Space). Al final, se calcula la iluminación, que depende del número de pixels, o sea, es constante: no depende del número de luces. En Killzone 2 hay cientos de luces en cada escena (creo que unas 200 de media), por lo que la técnica les viene al pelo. Y el resultado es brillante (aunque claro, la técnica es la misma mismísima que se usaba en PS1.... que "artistazo"...).

El principal problema de usar Deferred Rendering es que no es fácil aplicarla para objetos transparentes. Con forward rendering, a cada paso puedes ir comprobando si un objeto es transparente o no para obtener un valor correcto, pero en Deferred Rendering no iluminamos hasta el final, y ya es demasiado tarde para saber que valor de iluminación queda detrás del objeto transparente. Otro problema relacionado es el de antialiasing. Pero bueno, mejor miréis el libro, jeje. El caso es que estos problemas se pueden solventar (con más "trucos", que es de lo que van los Computer Graphics; perdón si me repito....). Añaden más complejidad de cálculo, que si vas a poner 4 luces mejor te quedes con "forward rendering". Pero compensa usar Deferred Rendering si vas a poner cientos de luces.

En fin, no me extiendo más, que al final acabaré diciendo tonterías como el pedazo "artista" ese, jeje.

Comentarios

Beñat ha dicho que…
Thanks por explicar que es cada cosa, y explicarlo BIEN y elegantemente, hazte profe!

Lo malo de esto es que este caballero tendrá algún seguidor y cogerá ese argumento para machacar a killzone...

Y mira que no tengo la ps3, pero su última frase "PS3’s only hope is in 2010- God of War III", anda que...
focotaku ha dicho que…
:D gracias ;)
Sí, y luego cuando salga el God of War III el "artista" dirá que le faltan polígonos :p

Entradas populares de este blog

En el mundo real -- los "riajuu" リア充

Allá por el 2005 recuerdo que en mi lab en Tokyo algunos estudiantes un poco "frikis"/"otakus" empezaban a usar la palabra  RIAJUU リア充 . La usaban para referirse a gente normal, o sea, gente que no era friki como ellos (/nosotros?). Es una abreviación de la frase リアル(現実)の生活が充実してる人: RIARU (lo real/la realidad) NO SEIKATSU GA JUUJITSU SHITEIRU HITO. O sea, algo así como "persona que vive plenamente en el mundo real". Vamos, que no necesita hacer 現実逃避 (GENJITSU TOUHI, huir de la realidad) a través del manga, anime, o videojuegos 😛 Como dice una amiga, un "muggle", vamos 😝 A veces digo que es curioso que el japonés tenga una expresión para referirse a la gente normal como opuesta a la gente "otaku". Pero en realidad, no es que sea una expresión "propia de la lengua japonesa", más bien es una expresión propia del mundo "friki". Le he preguntado a mi pareja si conoce lo que significa RIAJUU y dice que nunca ha oído tal

La apropiación cultural portorriqueña de Rosalía

  Bad Bunny, Rosalía, y la conexión japonesa Abrí anoche en Clubhouse una sala de intercambio de español y japonés y entró una portorriqueña que mencionó la canción de Bad Bunny, "Yonaguni" (arriba, un fotograma del videoclip, aunque le he pegado la cara de Rosalía). Decía que quizás la parte en japonés sonaba un poco extraña, pero que según la escuchas te va gustando. (Spoiler: en japonés simplemente dice "quiero tener sexo contigo" ...) Tras lo cual me pareció relevante mencionar el último disco de Rosalía, que salió el viernes pasado. Y como la vi entrevistada por la tele, pues me puse a escuchar todo el disco por curiosidad. Y me pareció un poco extraño que hubiera tantas referencias japonesas: 4 canciones tienen título en japonés (Saoko, Chicken Teriyaki, Hentai, Sakura), y en uno de los videoclips aparece a lo Lost In Translation, en un karaoke japonés, con la letra de su propia canción escrita en "katakana". Pero antes de que pudiera decir nada sobr

Kotaro vive solo

  He acabado de ver el anime de Kotaro vive solo en Netflix. Me ha gustado bastante. Es de esas historias sobre la vida cotidiana que van calando poco a poco. Premisa A ver, la premisa es un poco extraña, porque es un niño de 4 años que se muda solo a un apartamento 😅 El niño es un poco rarito también. Habla como un samurai de unos dibujos que le gustan. Pero aparte, es super independiente. Hace la compra y se hace la comida él solo. Un poco surrealista para un niño de 4 años. Sus vecinos se hacen amigo del niño y le ayudan en todo lo que pueden. ¿Pero de qué va? Pues cada episodio es una colección de varias historias cortas, así que el ritmo es bastante ligero, y cada historia pues tiene algo de cómico y algo para reflexionar. Básicamente, todo lo que hace el niño tiene una razón, y a veces el por qué es un poco triste. Otras veces, los adultos de su alrededor se ven reflejados en el niño, aunque el niño simplemente haga cosas de niño. Es difícil de explicar sin ejemplos... Un mini