Mostrando entradas con la etiqueta Infografía. Mostrar todas las entradas

5/5/14

Modelado de cesped. Texturas.


La vegetación siempre ha sido y es algo complicado. Complicado por lo complejo. Y el problema es que todo render de arquitectura que se precie, en términos generales siempre debería tener presencia de vegetación. Y cuando además este render es de exterior, es muy habitual tener que usar césped.


A grandes rasgos existen 3 formas diferentes de enfrentar el problema del césped, de las cuales dos suelen asustar nada más oírlas:
- Usar texturas de césped
- Sistema de partículas usando objetos premodelados
- Sistema de partículas de simulación de pelo

La primera pregunta que debemos formularnos a la hora de elegir el sistema que vamos a utilizar es referente a una cuestión de escala. Es decir: ¿cómo de lejos está la cámara respecto de nuestro césped?

La primera de las tres opciones probablemente no sea recomendable usarla casi nunca, sin embargo, si nuestro césped se encuentra muy lejos de la cámara, puede que podamos pensar en utilizar esta técnica. En el momento en que la distancia sea tal que la forma de césped pueda llegar a intuirse mínimamente...esta opción deberíamos descartarla de plano. Por supuesto, todo esto siempre y cuando busquemos obtener una imagen lo más realista posible.

Hoy vamos a analizar cómo funciona la primera de estas tres formas y a intentar dar algunas pistas que os ayuden a conseguir mejores resultados.

Texturas de césped
Esta método es muy usado porque es muy fácil de implementar, sin embargo hay una serie de errores que deberíamos tratar de evitar:


Escala: es muy importante que no descuidemos la escala de nuestra textura, sobretodo no tender a escalas muy grandes, porque automáticamente no habrá duda de dos cosas: hemos usado una textura y además no lo hemos hecho bien. Podemos buscar fotografías reales para tratar de acomodar la escala de nuestra imagen hasta obtener el tamaño adecuado por comparación con otros objetos.
Costuras: como consecuencia directa del concepto anterior, la repetición de la textura entra en juego. Es imposible disponer de una textura tan grande y con tanta resolución como para no necesitar repetirla a lo largo de todo nuestro plano de césped. En este caso es importante usar texturas “tileables”, es decir, preparadas para que cuando coloquemos nuestra textura una y otra vez al lado de si misma, los bordes de unión o costuras no sean perceptibles. Hoy en día no suele ser mucho problema, porque en la mayoría de las web de texturas (www.cgtextures.com por ejemplo), encontraremos texturas preparadas para esto. Y de no encontrar, existen plugins para Gimp o Photoshop que nos ayudarán a crear las nuestras propias. Otro día explicaremos cómo hacer nuestras propias texturas “tileables”.
Homogeneidad: una vez conseguida una textura en la que no se aprecien las juntas, es importante centrarnos en evitar la homogeneidad del conjunto, para no tender a un césped demasiado monótono o en el que puedan encontrarse patrones repetidos.

Muy bien, pero... ¿cómo conseguimos todo esto? Vamos a ponernos manos a la obra con un ejemplo.


Para ejemplificar todo lo que viene a continuación hemos modelado lo que aspira a ser un bonito prado con un granero estilo “farmville” y algunos árboles que usaremos para tener una idea de escala de todo el conjunto.


Hemos buscado por internet una textura que ya fuese perfectamente tileable y hemos ajustado su escala hasta el punto en el que consideramos que entona perfectamente con los elementos de la escena. Hemos optado por elegir una textura lo más plana posible para evitar en la medida de la posible que pudiesen encontrarse patrones identificables a lo largo de todas las repeticiones que se dan de la textura. La hemos repetido 6 veces en cada dirección, lo que quiere decir que el mismo cuadrado de textura está colocado 36 veces en nuestro plano. Como podéis comprobar no se aprecian las costuras ni se intuyen repeticiones.

En este punto ya hemos conseguido superar dos de los errores más comunes: escala y costuras. Sin embargo nos queda el más complicado: queremos conseguir un conjunto heterogéneo en el que la formación de césped parezca lo más natural posible. 


Lo primero que vamos a hacer es crear variaciones tonales de nuestra textura original. Apoyándonos en el gestor de materiales que nos proporcione nuestro software favorito, vamos a mezclar las tres tonalidades usando para ello patrones de mezcla creados a partir de texturas procedurales de ruido. La ventaja de usar estas texturas es que ya nos aportan por si mismas cierta heterogeneidad, lo que permitirá que se empiecen a diluir las repeticiones de las texturas.


En primer lugar mezclaremos la textura original con la primera variación tonal usando una textura de ruido de escala pequeña.


El resultado de lo anterior lo mezclaremos con la segunda variación tonal, utilizando también una textura de ruido, pero a una escala diferente, para que en el resultado final aparezcan mezcladas las tres tonalidades diferentes.


Para el siguiente paso vamos a usar una textura distinta. Vamos a simular esas pequeñas partes donde el césped suele perderse, por pisarlo o por cualquier otro motivo, y se empieza a ver la tierra que hay debajo. El modo de mezcla va a ser el mismo que para las texturas anteriores, sin embargo utilizaremos una textura procedural más agresiva para que lleguen a mostrarse por completo partes de la nueva textura.


Por último pero no menos importante, vamos a usar de nuevo una textura de ruido procedural para aplicar un pequeño “bump” a todo el plano. De este modo conseguiremos que el conjunto quede lo más heterogéneo posible, dando por resuelto así el tercer error más común de este tipo de césped.


Este tipo de césped aplicado junto a una escena de cierta complejidad nos dará más o menos buenos resultados. Será recomendable usarlo en escenas de este tipo, donde debido a la lejanía de la cámara la cantidad de césped es enorme y usar otros métodos podría suponer una cantidad de cálculo enorme para el ordenador.

Lo descrito en este post es sólo un ejemplo, pero dependiendo del tipo de texturas iniciales o del objetivo que queramos conseguir podrá utilizarse un tipo de mezclas u otras. Otra forma de hacerlo podría ser “unwrapear” nuestro plano y exportarlo a nuestro programa de edición favorito (Photoshop, Gimp, Krita, etc.) y crear una serie de pinceles con las texturas originales que usaríamos para pintar nuestro plano de textura, que luego simplemente tendríamos que introducir en nuestro 3D. Sea como fuere lo importante es tratar de no caer en errores demasiado evidentes que hagan que nuestra escena sufra por falta de realismo.

En futuros artículos entraremos a explicar los otros dos métodos para crear césped. Stay tunned!
Leer más

15/1/14

Iluminación IES


No cabe duda de que la iluminación es uno de los aspectos más importantes a la hora de crear nuestras escenas 3D. Invertir tiempo en conseguir una buena iluminación siempre va a repercutir en unos mejores resultados. Por supuesto depende del tipo de escena que estemos haciendo el hecho de utilizar un tipo de iluminación u otra, pero si lo que buscamos es realismo, lo normal cuando trabajamos en visualización arquitectónica, el tipo de iluminación del que vamos a hablar hoy sin duda os ayudará mucho a conseguirlo.


IES son las siglas de Illuminating Engineering Society, que es una sociedad sin ánimo de lucro creada en Nueva York nada más y nada menos que en el año 1906. La principal finalidad de esta sociedad fue trabajar para mejorar todo lo relacionado con la iluminación, para conseguir crear mejores ambientes aunando todo el conocimiento sobre iluminación de expertos en la materia, trasladando posteriormente los descubrimientos al público en general.

Tras el paso de los años esta sociedad no ha dejado de trabajar y, adaptándose a las nuevas tecnologías, desarrollaron un formato de archivo propio: los .ies. El objetivo de este formato es que los fabricantes de cualquier tipo de iluminación pudiesen recrear digitálmente el tipo de iluminación que generan sus productos físicos. Es decir, un fabricante X puede crear un archivo .ies de cualquier bombilla que fabrique, de modo que nosotros podemos usar ese archivo para recrear en nuestra escena virtual exactamente el mismo tipo de iluminación que esa bombilla generaría en la realidad.

Usar este tipo de iluminación beneficia por un lado a los fabricantes, porque es una forma de dar a conocer sus productos, pero también a nosotros, porque gracias a ellos podemos conseguir matices en nuestra iluminación que sería muy complicado conseguir de otra manera.


La iluminación que normalmente nos ofrece cualquier software son las tipicas lámparas de cono, puntuales, soles, semiesferas, luces de área, etc., un tipo de iluminación que siempre va a ser uniforme desde el punto de origen. Sin embargo con una iluminación IES estaremos recreando no sólo la luz en si, sino también el diseño del portalámparas y las posibles sombras y atenuaciones que este pueda generar sobre la fuente de luz.

Existen múltiples fabricantes que ofrecen archivos .ies de sus luminarias. Aquí os dejamos algunos:


El problema de esto es que se requiere emplear mucho tiempo en la búsqueda de la lámpara perfecta, a no ser que tengamos de antemano perfectamente claro qué modelo de luminaria vamos a usar en nuestro proyecto, en cuyo caso simplemente iríamos a la web del fabricante y descargaríamos el correspondiente archivo .ies (suponiendo que lo tengan disponible claro). Pero de no ser así existe otra posibilidad: crear nuestros propios archivos.


Existen varios generadores de archivos .ies, generalmente gratuitos. Nosotros os vamos a recomendar el de Karba (www.tom-schuelke.com/ies-gen3.exe), cuyo uso es extremadamente sencillo.

En primer lugar nos servirá de visor donde poder ver el aspecto que tiene cualquier archivo que nos bajemos, a la par que hacerle modificaciones y volver a guardarlo.

Pero lo más interesante es crear nuestros propios archivos. Se nos ofrece una cantidad de controles muy contenidos, donde la principal herramienta es la gráfica de la izquierda, sobre la que directamente podremos clickar y mover la línea roja que nos definirá a la derecha el tipo de iluminación que estamos creando. De los controles de abajo, describimos la función de cada uno:

- Area of editing: nos permitirá manejar la precisión del ratón al pulsar, cuanto más a la derecha, más grande será el radio de acción del ratón sobre la gráfica.
- Brightness: como su propio nombre indica, con este medidor controlaremos la intensidad de nuestra lámpara.
- Away from wall: esta opción es sólo para visualización, señalando la distancia a la que se encuentra la lámpara del muro, para ver el halo que va a imprimir sobre el mismo.

Y en cuento a la gráfica pues es muy sencilla, teniendo en el eje Y la intensidad, mientras que en el eje X tenemos el ángulo, siendo el 0 la vertical debajo de la lámpara y el 90 la horizontal. Una vez que empecéis a trastearle un poco veréis que es extremádamente sencillo.


Por lo demás ya dependerá del software que utilicemos que la opción de usar lámparas IES esté más o menos escondida, habilitada por defecto o quizá requiriendo la utilización de algún plugin. Pero una vez importada la lámpara, dentro sólo nos quedarán un par de opciones con las que jugar: intensidad y color.


Sin duda una herramienta con la que podremos mejorar la calidad de nuestros render de arquitectura. Enjoy!
Leer más

10/12/13

Habitación japonesa

Esta escena la preparamos hace ya algunas semanas con motivo del concurso sobre infoarquitectura celebrado por Andrew Price en su blog BlenderGuru. Las condiciones del concurso consistían en que la escena debía ser interior o exterior, completamente nueva y la utilización de modelos existentes estaba muy limitada. A nosotros nos pareció una ocasión perfecta para hacer la escena completa, desde cero, sin usar nada que ya tuvieramos hecho. Así que nos pusimos a ello.


Como siempre es recomendable en trabajos complejos, hay que tratar de abordar el problema desde lo general a lo particular. Sin embargo en esta ocasión nos saltamos ligeramente esa norma. Necesitábamos inspiración y esta nos vino a través de imagen de mueble navegando por internet. Encontramos esta fotografía de una mesa antigüa de estilo japonés, tratamos de recreala en 3D y ese fue el punto de partida que fue inspirando el resto de la escena.


Una vez decidido que queríamos una habitación japonesa, lo siguiente fue decidir la estética general. Hoy en día, dedicándonos a la infoarquitectura, lo más habitual es tener que hacer escenas super modernas de materiales sencillos y superficies extremádamente limpias, pero el concurso nos pareció la oportunidad perfecta para hacer algo diferente.

Empezamos definiendo el contenedor y el contexto general con el que trabajaríamos. Nos decidimos por una imagen en parte simétrica, con la cámara completamete centrada en el elemento principal, la habitación, donde colocariamos centrada nuestra mesa recién modelada. A izquierda y derecha un pasillo y un patio respectivamente, el primero muy oscuro y el segundo muy iluminado, de modo que se pudiese ofrecer una lectura lineal de la historia, de exterior a interior, de luz a oscuridad.


El siguiente problema a plantear fue qué cosas iban a tener una mayor presencia. Teniendo una pared de fondo tan grande y centrada, era necesario trabajar sobre ese vacío. Realizamos una pequeña composición a base de cuadros pequeños. Sin embargo, para dar una mayor sensación de humildad a la escena, creímos conveniente trasformar esos cuadros en telas que clavariamos en la pared. Tuvimos que hacer una pequeña simulación, definiendo partes fijas donde irían los clavos y dejando caer las telas. Como último toque decidimos que alguna de esas telas habría perdido algún clavo y pareciese que podría caer en cualquier momento.


Era muy importante bucar el mayor realismo posible, por lo que se añadieron una serie de detalles para ayudar en ello, como marcas negras de agujeros en la pared donde antes había clavos, materiales complejos tipo tercipelo para las telas o reflejos anisotrópicos en las chinchetas. A parte de eso era también importante que las telas pareciesen desgastadas por el paso del tiempo e incluso sucias, lo que conseguimos con un tratamiento previo sobre las imágenes que usaríamos como texturas.

En la arquitectura japonesa la madera es un material extensamente utilizado, por lo tanto en nuestra escena no podía faltar. Al mismo tiempo, casi mas por obsesión que porque sea muy usado en la realidad, teniamos el capricho de usar puertas shōji, es decir, las típicas puertas correderas de Japón, que en vez de cristales, tienen láminas de papel washi traslúcido.


La arquitectura tradiconal japonesa en viviendas tiene unas pautas muy claras, con habitaciones y paredes bien encuadradas, por lo que el siguiente paso fue definir este encuadre, siguiendo las líneas de la altura de las puertas y componiendo cómo sería el techo. Debía ser todo muy sencillo, por lo que unos simples listones de madera era lo que necesitábamos. Para rematar la composición nos faltaba una lámpara que encajase en el conjunto, así que diseñamos algo robusto y en la línea del resto de la escena, a base de listones de madera y papel washi.


En este punto parecía buen momento empezar a definir cómo sería el suelo. Para las paredes no había problema, puesto que un color liso probablemente sería suficiente, sin embargo el suelo, tras un poco de documentación por internet, si que iba a necesitar algo más de trabajo. Era necesario algo que cláramente tuviese volumen, además de pensar también en algún elemento lineal, a modo de junta, que mostrase una clara direccionalidad. Además de la pieza principal, en el pasillo y en el escalón de entrada a la vivienda se puso una tradicional tarima de madera.


A partir de este momento fuimos modelando gran cantidad de pequeños objetos que necesitábamos para completar la escena. El mueble del fondo con los compartimentos, los pergaminos enrrollados y desenrollados, las espadas kendo, los cojines del suelo con evidente uso y paso del tiempo, la planta, las zapatillas desperdigadas, los vasos y el jarrón de agua, la caja del juego y el juego en si, un Go, tradicional juego chino que se exportó rápidamente a Japón; para la colocación de las fichas utilizamos un sistema de partículas que nos facilitó enormemente la tarea.


Encajado ya el interior casi en su totalidad, era momento de prestar atención a lo que pasaba fuera. La escena en este punto, a pesar de la pequeña planta del interior, estaba pidiendo a gritos un toque de verde algo más intenso. Aprovechando la pared del patio exterior dispusimos una enredadera que se fuese amoldando a su forma e, incluso, extendiéndose por el suelo y enredándose con la gravilla, dando claras muestras de falta de cuidado. La gravilla la hicimos modelando unas cuantas piedras y distribuyéndolas mediante un sistema de partículas en la zona visible de la cámara. Del mismo modo era importante que la enredadera no se mostrase muy homogénea, por lo que jugamos cambiando el tono de las hojas aleatoriamente. En el pasillo por el contrario, aprovechando la oscuridad que habíamos decidido imponer, no fue necesario prestar mucha atención a los detalles, pues no iban a distinguirse.


Ya casi por último, queríamos jugar con la sombra que nuestra puertas shōji proyectaban al interior, y pensando en mantener la escena lo más liviana posible, simplemente dispusimos una imagen png de un arbol fuera de la vista de la cámara, pero que proyectaba su sombra sobre el hueco de la puerta, dotando de heterogéneidad a la sombra propia y proyectada.


Antes de abordar la pequeña postproducción de la imagen, nos seguía resultando poco natural a la vista, todo quizá demsiado limpio. Pensamos entonces en añadir algo de suciedad, sobretodo en el suelo que, dado su color, era un claro candidato a ensuciarse. Así, creamos manchas tanto a la entrada como a la salida; además, para crear una excusa que explicase por qué en una casa tradicional japonesa podría encontrarse una mesa girada, añadimos marcas de rozaduras justo al lado de las patas, de modo que pareciese que había sido movida con brusquedad recientemente. Por último, como toque apenas imperceptible, añadimos una pequeña telaraña en una de las esquinas del techo, reforzando así la idea de antigüedad.


En general, tanto con las puertas abiertas y la disposición de los objetos en la escena, ninguna de ellas al azar, buscamos intentar transmitir una historia, imaginar que es lo que podría haber estado pasando justo en el momento antes de hacer la fotografía. Apoyarnos en esta “historia” nos ayudó a decidir la mejor posición de los elementos en relación con los demás.

Por último realizamos un pequeño tratamiento de postproducción sobre el render, consistente en añadir un pequeño vignetting y corrección de color, para conseguir una tonalidad general más cálida, a la vez que oscurecer aquellas partes menos importantes, dando al conjunto el aspecto deseado.
Leer más

19/11/13

Ambient Occlusion

Unas semanas atrás hicimos una pequeña introducción a los diferentes pases de render. Hoy vamos a empezar a verlos particularizados y a profundizar un poco sobre ellos. Empezamos con uno de los más conocidos.

Ambient Occlusion (AO) es un concepto ampliamente nombrado en el mundillo de las imágenes generadas por ordenador (CGI por sus siglas en inglés). La traducción literal sería “oclusión ambiental”, aunque rara vez lo he encontrado nombrado así, inclusive en medios de habla hispana. Sin embargo dicha traducción nos da una aproximación bastante acertada a la definición del mismo.

Se trata de un método usado por gran cantidad de software mediante el cual se acentúa cierto realismo en las imágenes. Es una forma rápida y ecónomica en cuanto a recursos, de simular una iluminación global de nuestra escena.


Y como la mejor forma de entenderlo es verlo, aquí un ejemplo:



Esto que mostramos aquí es un pase de ambient occlusion de una escena relativamente compleja. Como vemos se trata de una imagen en escala de grises, y como vemos, es una imagen en la que se puede entender perfectamente toda la geometría. ¿Cómo se genera dicha imagen? Pues básicamente lo que hace el ordenador es estudiar cada uno de los puntos de nuestra geometría y evaluar como de “escondido” está dicho punto respecto del cielo. Desde cada uno de esos puntos se lanzan una cantidad de rayos proporcional a una opción llamada “samples” (no siempre presente). De cada uno de esos rayos se evaluará si golpea con otros objetos de nuestra escena antes de alcanzar el cielo. La cantidad de rayos que se ven interrumpidos frente a aquellos que logran alcanzar su objetivo, mediante una relación matemática, terminará dando un valor entre 0 y 1, correspondiendo el 0 al color negro y el 1 al color blanco.

Para entender como el ordenador asigna finalmente este valor a cada pixel, hay que mencionar el modo de color HSV (Hue, Saturation, Value). A la hora de asignar dicho modo a nuestro mapa de ambient occlusión, Hue (matíz) y Saturation (Saturación) serán siempre 0, mientras que a Value se le asignará el valor obtenido mediante el método descrito.

Es importante mencionar que estos rayos no sólo tienen en cuenta los objetos contra los que impactan, sino que también tienen en cuenta si los materiales asignados a dichos objetos tienen transparencia. En este sentido, si un objeto es un 50% transparente, un punto cualquiera no estará completamente oculto respecto a dicho objeto, estará sencillamente semioculto...como siempre, lo mejor para entenderlo, una imagen:


Lo que hemos hecho en esta imagen ha sido crear un plano de suelo y otro de pared, aplicando a este último un gradiente de materiales aumentando progresivamente la transparencia del mismo. Para entender mejor como esta transparencia afecta a nuestro mapa de ambient occlusion hemos ido rebajando poco a poco el valor del mismo, de modo, que como puede observarse, la oscuridad aumenta siempre mucho mas desde la esquina con la pared completamente opaca, hasta el extremo contrario donde tiene un comportamiento igual a aquellos puntos menos ocluidos del suelo.

Llegados a este punto ya tenemos una percepción mucho más clara de qué es un mapa de ambient occlusion, cómo se crea y como se comporta ante la transparencia de los materiales. Perfecto, pero estamos viendo que los mapas de AO son siempre una escala de grises, mientras que nosotros trabajamos generalmente con imágenes a color, así que, ¿cómo lo usamos?.
Lo más habitual es que nuestro software preferido directamente nos de opciones para ensamblarlo todo juntito y que nosotros sólo veamos el resultado final, sin embargo, para poder tener un control mucho más exhaustivo sobre las imágenes que generamos, es recomendable aprender a tratar estos mapas por separado, pudiendo controlar muy fácilmente a posteriori la intensidad con la que aplicamos dicho mapa, en caso de que no quedar contentos con las opciones elegidas antes del render. Y aquí es donde entran los famosos “modos de fusión”, presentes en prácticamente cualquier software de edición de imágenes y sobre los que hablaremos en detalle en otra ocasión.


El modo aceptado generalmente para la unión de nuestra imagen con un pase de AO es el “multiplicar”. Sin embargo en mi experiencia y según lo que andemos buscado, puede ser interesante probar otros diferentes.

Es importante mencionar que lo realmente correcto es multiplicar el AO por la capa de color del diffuse, no por el diffuse completo ni por supuesto por la combinación con mapas especulares o de transmisión.

Veamos un ejemplo de como controlar dicho pase de AO al aplicarlo sobre nuestra imagen:


Para explicarlo hemos creado una pequeña escena con algunos objetos. Hemos usados materiales simples y no hemos usado ningún punto de luz, sólo algo de luz ambiental. En la imagen más a la izquierda podemos observar el resultado de dicha escena. Siguiendo el esquema anterior hemos hecho varias pruebas. Como puede observarse podemos usar nuestro mapa de ambient occlusion para cambiar completamente la iluminación de nuestra escena; si previamente a multiplicarlo por la capa de color diffuse aprovechamos para aumentar o dismunuir el valor de sus píxeles, podemos aclarar u oscurecer la imagen respectivamente.

En esa escena tan sencilla es obvio que comparando cualquiera de las 5 pruebas con AO frente a la primera que no lo tiene, la percepción del espacio se hace mucho más evidente con el uso de este, dotando a la escena de un realismo que no tenía.

Por último os dejamos con un pequeño vídeo en el que podéis ver cómo el mapa de AO del principio puede usarse para retocar por completo la iluminación de esa escena.


En siguientes post seguiremos aprendiendo más acerca de otros pases de render. Stay tunned!
Leer más

31/10/13

Iluminación directa e indirecta

Cuando trabajamos con imágenes y escenas 3D generadas por ordenador, uno de los factores más relevantes a la hora de trabajar con nuestra escena es la iluminación. Actualmente hay muchas técnicas y motores de render que realizan simulaciones muy reales del comportamiento de la luz dentro de una escena. Hay muchos métodos para el cálculo de dichas simulaciones y que podremos pararnos a analizar en otro momento, pero ahora queríamos centrarnos en lo más básico: las diferencias entre la iluminación directa y la indirecta.

Para comenzar creemos conviene recordar como funciona la luz para saber distinguir entre lo que es una iluminación directa y lo que es indirecta. De forma muy genérica podemos decir que toda fuente de luz emite unas ondas que rebotan sobre los objetos y trasladan al observador una determinada cantidad de luz, lo cual nos permite distinguir entre los diferentes objetos entre sí y también sus características o colores.

Hablando en términos de CGI, una iluminación directa es aquella que se consigue al crear una fuente de luz que emite rayos de luz e iluminan la escena sin rebotar en los objetos. De esta forma, las superficies tienen dos posibilidades: o están iluminadas o no lo están.






La aplicación de este método como cálculo de iluminación dentro de la visualización arquitectónica, genera imágenes muy simples con poca información pero en cambio son extremadamente rápidas de calcular.

Por otro lado, la iluminación indirecta es aquella que reciben los objetos como consecuencia del rebote de la luz sobre otros objetos en la escena. Es decir, la que no proviene directamente desde la fuente de luz sino de su reflexión, refracción o transmisión a través de otros objetos. 



La combinación de la luz directa y la luz indirecta nos da una imagen más real para el diseño de nuestras escenas. Ahora ya no solo hay zonas iluminadas y zonas que no lo están, sino que también aparecen zonas en penumbra o zonas con diferentes grados de iluminación.

Evidentemente, el comportamiento real de la luz es mucho más complejo que todo esto y por tanto el simularlo virtualmente requiere de una gran potencia de calculo. Cuantas más veces hagamos rebotar la luz entre los objetos de la escena, más real será la simulación que consigamos.

Además de todo esto, hay que sumar que los materiales del mundo real suelen ser también muy complejos y sobre ellos la luz reacciona de diferentes modos, con lo cual hay que tener en cuenta sus características de reflexión, refracción, transmisión, rugosidad... etc. Simular todas estas características y el comportamiento de la luz sobre ellas es realmente complejo y existen multitud de métodos y software capaz de simularlo de un modo u otro.


Evidentemente cuando trabajamos intentado conseguir realismo en nuestras escenas de arquitectura es fundamental estudiar cómo se comportan los materiales en el mundo real para ser capaces de trasladar sus propiedades físicas al software con el que estemos trabajando y así poder conseguir las infografías que deseamos.

De este modo, cuanto más compleja sea la escena y más detenimiento pongamos en el desarrollo de los materiales y en el comportamiento de los mismos frente a las fuentes de luz que hayamos colocado, más realismo podremos conseguir en nuestros trabajos.

A esto, además, hay que sumar el método que utilice nuestro motor de render para realizar el cálculo de la iluminación. Un método completamente real (el que usan los llamados motores unbiased) realizaría un cálculo infinito de rebotes de luz sobre la escena, con lo cual necesitamos una potencia de cálculo abrumadora, aunque cada vez es más viable. Pero por suerte existen métodos para realizar aproximaciones realmente asombrosas del comportamiento de la luz, que si bien no son completamente reales, sí que realizan simulaciones de iluminación global casi indistinguibles de un cálculo real.


El estudio de la simulación del comportamiento de luz llevó al desarrollo de dos algoritmos de Iluminación global que son en los que se basan principalmente todos los métodos, el RayTracing (1980) y el Radiosity (1984). El primero de ellos realiza un cálculo por muestreo de puntos y el segundo por elementos finitos. Estas dos técnicas han ido evolucionando e incluso se han mezclado para conseguir aprovechar las ventajas de cada una de ellas. En cualquier caso el estudio del funcionamiento de cada uno de estos métodos, o de otros como el Path Tracing, Montecarlo, Fhoton Mapping, etc. quedan para futuras entradas.
Leer más

16/10/13

Color bleeding

En este artículo vamos a explicar un pequeño tip o truquito para solucionar un problema, que de no entenderlo, puede llegar a resultar muy molesto.

La traducción directa de "color bleeding" al español, "sangrado de color", a priori no parece darnos muchas pistas sobre su significado. Sin embargo veremos que en realidad este problema si que tiene algo que ver con "sangrar" color. Es un problema que cuando hacemos infografías de arquitectura tiende a destacar mucho debido a las superficies tan impolutas que a veces proyectamos. Y la iluminación de nuestros renders es la causante de ello.

Para ilustrar el problema vamos a usar la conocida Cornell Box, que nos viene de perlas para reproducir la cuestión:


Cuando tenemos dos superficies cercanas de diferente color y la luz incide sobre ellas, el color de una se ve reflejado en el otra y viceversa. Si os fijáis en este primer render, tanto el color rojo como el verde se ven reflejados en los objetos que se encuentran más próximos.

Este efecto de transferencia de color entre superficies no ocurre siempre y depende del tipo de iluminación que estemos usando. Sin embargo, en las configuraciones de iluminación que tienden a buscar el realismo, siempre estará presente. Es más, en muchas ocasiones esto ni siquiera supondrá un problema, porque a fin de cuentas es un detalle que dota de realismo a nuestra escena. No obstante, es muy importante entenderlo para que llegado el caso seamos capaces de poder controlarlo a nuestro antojo, bien para eliminarlo, bien para atenuarlo, o incluso para jugar con él como veremos después.

Para entenderlo es clave comprender la realidad que lo causa: los rayos de luz reflejados. Cuando los rayos provenientes de nuestra fuente de luz impactan sobre una superficie, dejan parte de sus propiedades en esta, toman parte de las propiedades del material contra el que impactan y siguen su camino, en este caso habiendo coloreado su luz, que impactará sobre el siguiente objeto, transmitiéndole dicho color. La clave en todo esto son dos palabras: luz reflejada.


Como veis en este segundo render no hay rastro de color bleeding. Lo que hemos hecho ha sido tratar los materiales de esas dos paredes para decirles que cuando sobre ellas impacte un rayo de luz, el reflejo de ese rayo lleve consigo el mismo color amarillento del resto de objetos, en vez del rojo o verde de las paredes laterales.

Esto se consigue de un modo u otro en función del software que empleéis, pero hoy en día, con materiales basados en nodos siendo cada vez más populares, esto que os mostramos aquí puede ser un ejemplo de composición para estos materiales.


Básicamente necesitamos dos materiales, el básico de nuestra superficie, sea el que sea, y otro que configuraremos para que sea el que se use cuando un rayo de luz incida sobre nuestra superficie y sea reflejado.

En el ejemplo anterior, lo que hemos hecho ha sido aplicar a ese “material reflejado” el mismo color que poseen el resto de objetos. Pero llegado a este punto, podríamos usar esta técnica para modificar la escena absolutamente a nuestro antojo. Por ejemplo así:


Como veis aquí hemos conseguido que nuestro material rojo refleje verde, y el verde refleje rojo. ¿Qué conseguimos con eso? Pues en este caso nada en particular, excepto obtener mayor control sobre los materiales con los que trabajamos.

Y como siempre decimos, el conocimiento teórico es clave, mucho más allá de las herramientas que usemos, que de una forma u otra siempre nos permitirán solucionar los problemas que nos encontremos en nuestro diseño, siempre y cuando seamos capaces de entender qué es lo que está pasando.
Leer más