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

Cómo comprar en Amazon Japan

Para los que seais "otakus" como yo, quizá os interese jugar a juegos en su versión original en japonés. Una buena opción para conseguir esos juegos es pedirlos a Amazon Japan , sobre todo si vivís en Japón como yo. El problema es que, aunque hay páginas que se pueden ver en inglés, la mayoría de información está en japonés. Por ello he pensado hacer esta mini-guía. Si tenéis comentarios o dudas, me las comentáis y la iré ampliando. Lo primero de todo es registrarse. En la página principal de Amazon JP, veréis un botón arriba a la derecha donde pone YOUR ACCOUNT. Clickad ahí, y saldrá una página en japonés con sólo una frase en inglés: "Would you like to see this page in English ? Click here." Pues clickad ahí, y tendréis una página como ésta: Haced click en "Change your name...", y seleccionad nuevo cliente ("No, I am a new customer"): Ahora aparecerá un formulario en japonés, que no se puede cambiar de idioma. Poned primero vuestro nombr

El catalán, en la intimidad

Por si alguien no se había dado cuenta, este blog se llama(ba) "Catalan Otaku". Lo de "otaku" porque soy un "otaku", jejeje, y lo de catalán, porque soy catalán, no porque el blog lo escriba en catalán, que ya veis que no. La razón de escribirlo en castellano es para poder llegar a más gente (y porque Google AdSense no soporta catalán 🤑😂). Según Wikipedia , el castellano es la 2a lengua más hablada del mundo, por hablantes nativos (unos 350 millones de personas), después del chino. Es también la 3a lengua más hablada del mundo, por número total de hablantes, y la 3a lengua con más presencia en Internet. También es la lengua que hablo habitualmente con mi familia. Ante tales cifras, parece normal que la mayoría de extranjeros piensen que en España no se hable otra cosa que "español" (castellano), aunque una japonesa de mi compañía me preguntó el otro día si el idioma de España era el inglés... Y es que en Japón, "extranjero" es sinónim

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