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...

"Mujer", la culebronización turca de un J-drama 🇯🇵🐍🇹🇷

  El año pasado pasé unas semanas en España y por las noches veía con mi madre una serie turca que daban en Antena 3: Mujer (Kadin en turco). Como la serie no estaba mal, me puse a mirar la Wikipedia y descubrí que era una adaptación de una telenovela japonesa (J-drama, o "dorama"): Woman . No acabé de ver "Mujer", aunque vi un montón de episodios, pero mi madre me contó el final. Son muchas horas, la verdad: 81 episodios de 2 horas cada uno!!! Pero hace un par de semanas me puse a mirar la versión original japonesa, que son tan solo 11 episodios, de unos 45 minutos cada uno (en Drama Cool están con subtítulos en inglés). Kadin vs Woman Sin chafar el final, voy a intentar comparar un poco las dos versiones. Si no quieres saber detalles, deja de leer ya 🙈 A grandes rasgos se puede decir que la versión turca es una "culebronización" 🐍  de la serie japonesa. Lo que quiero decir es que la serie japonesa es un drama interesante, no demasiado largo, y sin i...

Violet Evergarden y las chicas robot

Carl Jung y el arquetipo robot En el anime existe un arquetipo de persona que no encaja en ninguno de los 12 arquetipos junguianos , del psiquiatra Carl Jung. Este arquetipo es el del "robot", por ser una persona que, en principio, parece entender poco o nada acerca de los sentimientos humanos. Por ser un robot, un extraterrestre, un clon, o quizás simplemente porque tengan un punto de autismo o síndrome Asperger y no se expresan como los demás. En el imaginario occidental quizás la mejor representación de esta personalidad es la de Spock, en Star Treck. En la animación japonesa, creo que el ejemplo más conocido es el de Rei Ayanami, en Evangelion. En el anime, estos personajes suelen ser chicas adolescentes. Lo de que sean adolescentes imagino que es porque la mayoría de anime va dirigido a un público adolescente. Pero de todos modos, puede que sea también un recurso para provocar mayor impacto, ya que cuesta imaginarse a una chica adolescente tan fría como las representan. ...