¿Olvidates tu contraseña?

Luz e iluminación Parte I

2013-12-05
No hay comentarios

La luz es un elemento complejo incluso hoy en día para la ciencia; en ocasiones, la luz se comporta como si tuviera masa y en otras ocasiones como si no la tuviera. Es un elemento tan complejo que la mayor parte de la física moderna se centra en el comportamiento de la luz, sobre todo la física relativista. Si ni siquiera sabemos cómo se comporta la luz en la realidad, ¿como vamos a poder simularla de forma realista en un videojuego?

Muchas y muy variadas han sido las propuestas para simular la iluminación dentro de los videojuegos y cada una de estas han tenido sus, obviamente, luces y sombras. En los primeros pasos de la industria, la gran mayoría de juegos no contaban con motores que simularan iluminación y casi todo era prerenderizado; es decir, que la iluminación no era generada por el juego sino que ya venía dada de los renders previamente, estando así la iluminación directamente pegada a las texturas del juego, como si alguien hubiera dibujado las luces y las sombras por encima de las propias texturas y modelos. Sin embargo, no son pocas las reminiscencias que quedan hoy en día de este método rudimentario para simular iluminación en los videojuegos.

Cuando la iluminación deja de ser prerenderizada (no estática, que es diferente) en los videojuegos, los desarrolladores programadores que tienen como encargo programar el motor del videojuego para que sea capaz de iluminar se plantean una simple pregunta;

¿Qué es la luz? Para un desarrollador de videojuegos, la luz no es más que un modificador del color de una superficie en función de la emisión de iluminación que genera ciertos elementos dispuestos por el escenario como el sol, las bombillas, los fluorescentes, las velas, etc.

En las superficies donde incide la luz, estas se muestran iluminadas, y en las que no, se generan sombras, creando así un modelo binario (iluminado o no) físicamente correcto pero poco efectivo; la clave de una buena iluminación está en los “matices”, es decir, iluminación global y oclusión ambiental.

La iluminación global es algo tan simple como que la luz al rebotar por los diferentes objetos del entorno coge el pigmento de estos objetos y los transporta a los otros generando así armonía en los colores de la escena. Es decir, que si en medio de una habitación completamente blanca se coloca una pelota enorme de color rojo intenso a la que le da la luz, las paredes blancas obtendrán un ligero tono rojizo como consecuencia de que la luz haya rebotado sobre la pelota. Todas las luces generan iluminación global y la simulación de esta en el videojuego o no marcará la diferencia entre un motor de iluminación o un sucedáneo de éste.

El motor de iluminación Beast, usado en Mirror’s Edge (íd.; DICE, 2008) y ahora integrado en el famoso motor Unity (eso sí, solo para la versión Pro) es un gran ejemplo de motor centrado en representar la iluminación global. DICE consiguió una estética en Mirror’s Edge que pocas veces ha sido repetida, usando (aunque más bien abusando) de la iluminación generada por la G.I. (Global Ilumination). Los colores saturados son contrastados con fondos blancos con un filtro azulado que ha conseguido que el juego luzca una estética todavía reconocible y propia incluso cinco años después.

Por su parte, la oclusión ambiental es un fenómeno en parte derivado de la iluminación global pero con tanta importancia que merece ser nombrada como elemento aparte. La luz llega en menor cantidad a lugares agudos como juntas y esquinas y por tanto estos espacios resultan menos iluminados. Eso es la oclusión ambiental.

Hay infinidad de métodos para representar oclusión ambiental, desde soluciones a tiempo real al método más tradicional de todo; el prerenderizado, o bakeado. Uno de los conocimientos básicos que necesita un artista para ser desarrollador es el de la previsión. Esto quiere decir que debe ser capaz de detectar en que situaciones se van a utilizar los recursos que genere (principalmente texturas y modelos) para intentar que este modelo tenga por si solo (como si estuviera dentro del mundo de las ideas de Platón) la mayor cantidad de características posibles. Por ejemplo, si el desarrollador está modelando una caja y esta caja va a ser utilizada siempre en suelos, en la textura de los lados de la caja probablemente el desarrollador simule (prerenderice) la oclusión ambiental pintando ligeramente de negro la parte inferior de los lados de la caja que van a estar tocando con el suelo. Por desgracia, si esta caja va a usarse para ser también (además de en el suelo) amontonada encima de otras cajas o sobre otros objetos como estanterías, este bakeado (prerenderizado) de la oclusión ambiental derivará en una caja irreal y fuera de contexto.

Por ello a la hora de desarrollar es importante prever en que situaciones van a usarse cada asset, para poder dotarlos del mayor número de características posibles en el mayor número de contextos.

Ningún jugador espera que las luces se comporten como linternas perfectas. En la imperfección de la propia luz GI (Global Ilumination) y AO (Ambient Oclusion) reside la propia riqueza de la luz y por ello es importante que un desarrollador de videojuegos sepa la teoría básica del comportamiento real de la luz. No son pocas las propiedades básicas de la luz (dejando a un lado a los reflejos, los especulares, etc., que actualmente son propiedades que se simulan en los materiales, no en la propia iluminación del juego, aunque beben de ésta) y a lo largo de la historia del sector se han ido desarrollando mejores y más eficientes métodos para representarla, habiendo hoy en día dos grandes ramas; iluminación dinámica e iluminación estática. Los dos artículos complementarios a éste. Aunque independiente de la calidad del motor de iluminación, muchas veces la verdadera diferencia la marca el ojo del artista y su intuición al iluminar, y no la línea de código del programador. No es de extrañar que los juegos mejor iluminados sean aquellos con los peores motores, por lo que les invito a un paseo por Dear Esther (íd.; TheChineseRoom, 2011).

Imagen de perfil de Carlos Coronado

Carlos Coronado

107 entradas como autor
Desarrollador de videojuegos por elección, jugón por pasión. Mi curiosidad por jugar a videjuegos y sobretodo intentar entender porque los videojuegos me gustaban tanto me ha llevado a enfocar mi vida a intentar desarrollar esas mecánicas que nos absorben a todos. Me obsesiona la magía, los detalles, los matices, los buenos guiones y textos, los pequeños momentos del día a día y Warren Spector.

Etiquetas:

, , , , , , , , , , , , , , , , , , , ,

Inicio Foros Luz e iluminación Parte I

Viendo 1 publicación (de un total de 1)

Debes estar registrado para responder a este debate.