Mostrando entradas con la etiqueta Teorí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

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

3/10/13

Pases de render

Habitualmente cuando lanzamos un render con la pretensión de ser definitivo, bien por la máquina que tenemos, por la cantidad de píxeles, por los samples en caso de usar motores umbiased, suele requerir una cantidad de tiempo considerable. Por ese motivo, lo normal es repasar y volver a repasar todos los aspectos que consideramos que pudieran fallar o no quedar como esperamos, para no sentir más tarde que hemos perdido el tiempo al tener que volver a renderizar, bien porque descubramos fallos que no vimos con anterioridad, bien porque el cliente solicita algún cambio.

También suele ser complicado que, aun con todas las configuraciones que nos ofrezca nuestro software favorito, consigamos estar plenamente satisfechos con la imagen final que resulte de nuestro render: la postproducción, mucha o poca, siempre estará presente.


A fin de cuentas todo gira en torno a lo mismo: tener un mayor control sobre nuestra imagen final. Y por todo ello, llega un momento en el que es casi imprescindible empezar a trabajar con los famosos pases de render, porque nos facilitan el retoque, porque nos pueden ahorrar un nuevo renderizado y, en definitiva, porque a la larga nos ahorrarán tiempo.

Existen una gran cantidad de pases de render diferentes, no existe una cantidad determinada ni una formula universal para todo ellos y al final vas a tener que trabajar en función de lo que te ofrezca tu motor de render favorito. Sin embargo, aunque la cantidad, los nombres y las características difieran ligeramente de unos motores a otros, vamos a tratar de mostraros los más comunes y algunos de los usos que pueden tener.



Difuso/especular/transmisión:
Estos 3 pases son los más habituales. Son los 3 básicos que componen el render final. Dependiendo del motor de render, sobretodo si es de tipo unbiased, es posible que cada uno de esos tres pueda descomponerse a su vez en otros tres: color, directo e indirecto. En estos casos, por la forma en que funcionan estos motores, es posible que se genere mucho ruido si no aumentamos mucho la cantidad de “samples” y, en consecuencia, el tiempo de render. Si trabajamos con un motor unbiased y disponemos de los pases mencionados, podríamos mantener una cantidad de “samples” aceptable, hacer una búsqueda a través de nuestros pases para encontrar cual es el causante de generar el ruido (normalmente los indirectos) y difuminarlo antes de combinarlos con el resto.
La forma de combinar los 3 principales (difuso, especular y transmisión) será con el modo de composición “añadir”.



Sombra
Este pase es bastante sencillo de entender. Sencillamente es un mapa en escala de grises de las sombras de nuestra escena, propias y proyectadas, que podemos usar para jugar con todas las propiedades de la misma. Podríamos atenuarla, oscurecerla o incluso hacerle algún tratamiento de color.



Z (profundidad)
Es otro de los pases más comunes en cualquier motor de render. Es habitual que para poder verlo como un mapa de bits normal y corriente, antes debamos normalizarlo, es decir, convertir todos los valores del mismo a un rango entre 0 y 1. Para aclararnos, es un mapa en escala de grises que nos da información sobre la distancia a la cámara de todos los objetos de nuestra escena. Este pase es utilizado para simular la profundidad de campo que suele darnos una cámara de fotos, de modo que podremos desenfocar nuestra imagen a partir de una cierta distancia, o enfocar un determinado punto y desde ahí desenfocar todo lo que se acerque o aleje de la cámara respecto de ese punto.



AO (ambient occlusion)
Muy habitual también, se trata de un pase que sirve para simular cierta iluminación global. Es un mapa en escala de grises que representa cada punto en función de la cantidad de rayos directos que lo iluminan. Usado en pequeñas cantidades puede resultar beneficioso para nuestras imágenes al acentuar el volumen de los objetos.



Normal
Este es sin duda uno de los pases más atípicos, porque es muy difícil interpretar su significado. Es un mapa que almacena las normales de los objetos en cada punto. Las normales son vectores de 3 componentes, a cada una de las cuales se asigna un color RGB, resultando al final un mapa tan colorido como el que os mostramos. Se suele usar para tratar la iluminación, pudiendo incluso llegar a falsear la dirección de la que procede la luz, o acentuar la luz en ciertos puntos.




UV
Puede llegar a ser extremadamente útil disponer de este pase de render. Se trata simplemente de una representación de todos los objetos de nuestra escena que están “unwrapeados” (si es que esa palabra pudiera existir en español). Es muy habitual usar imágenes para texturizar los objetos de nuestra escena y en este pase podemos ver todos ellos. Podría usarse, por ejemplo, para cambiar la portada de un libro en nuestra escena que hemos detectado que está mal escrita, sin necesidad de volver a renderizar la escena entera.

Vector
En este caso también se trata de un pase algo más raro y se obtiene normalmene cuando estamos trabajando con animaciones. Nos da información sobre la dirección en la que los objetos se están moviendo y puede ser usada, por ejemplo, para desenfocar ciertas partes y acentuar la sensación de movimiento.

Índices de objetos o materiales
Por último, este pase también puede ser muy útil y lo habitual es usarlo en combinación con alguno de los anteriores. Previo render, si hemos asignado a cierto material o a cierta serie de objetos un índice concreto y diferente a los del resto de la escena, este pase nos permite aislar dichos objetos o materiales en postproducción para efectuar sobre ellos efectos concretos que no queremos que afecten al resto de la escena. Podríamos por ejemplo oscurecer o aclarar muy fácilmente un material concreto, aunque esté aplicado en objetos diferentes y en posiciones diferentes. Es una forma muy rápida de enmascarar objetos.


A partir de aquí y en futuros post, iremos desentrañando poco a poco cada uno de estos pases, conociendo en detalle las particularidades de cada uno. Stay tuned!!
Leer más

9/9/13

Píxeles. Las imágenes y su tamaño


Este es un artículo que sinceramente esperamos que a la gran mayoría no os haga falta leer. Sin embargo, son ya muchos años trabajando con imágenes y la experiencia nos dice que es un tema que muchas veces no llega a estar claro. Y reconozcámoslo, tanto para ajenos como para cercanos, el mundo de los píxeles, resoluciones, tamaños de imágenes, etc., puede llegar a ser un tanto confuso. Así que vamos a tratar de explicarlo de la forma más sencilla posible.


Empezando por el principio: ¿qué es un píxel? Pues obviando definiciones wikipedísticas o de la RAE, un píxel no es mas que un cuadrado de un solo color, sin más complicaciones. ¿Y cuánto mide? Y aquí es donde empieza el lío. Veamos un ejemplo:


Lo más importante es entender que cada uno de esos tres cuadrados rojos que vemos puede ser un píxel. Y los tres son píxeles idénticos, porque un píxel por si mismo no tiene información de tamaño, tiene exclusivamente información de color. Pero...¿seguro que son idénticos?

Cuando nos dicen que el tamaño de una imagen es de 800x600 píxeles, en realidad no nos están dando información sobre el tamaño como tradicionalmente entendemos este. Cuando en la calle se habla de tamaño lo habitual es que se haga en medidas de longitud: metros, centímetros, milímetros, etc. Para que esa medida de 800x600 píxeles podamos expresarla en medidas de longitud tradicionales, necesitamos un dato adicional: la resolución.

Por tanto, cuando vemos esos tres cuadrados rojos y decimos que son tres píxeles idénticos, es evidente que no es del todo cierto, puesto que su tamaño es diferente. Esto es debido a que la resolución de los tres es diferente. La resolución de una imagen es lo que va a determinar el tamaño de sus píxeles.

La resolución es una medida poco habitual, porque no es una medida de longitud, pero tampoco es una medida de superficie. La resolución nos dice cuántos píxeles entran en una unidad de longitud dada. Por ejemplo podemos decir que tenemos una resolución de 10 píxeles por centímetro, lo que quiere decir que en cada centímetro vamos a meter 10 píxeles. Si eso lo extrapolamos a una superficie, tendremos 10 pixeles por centímetro de ancho y otros 10 píxeles por centímetro de alto.


Volvamos al primer ejemplo: con una tamaño de imagen de 800x600 píxeles y una resolución de 100 píxeles/centímetro, tendremos una imagen de 8x6 centímetros. Sin embargo, si a esos mismos píxeles les aplicamos una resolución de 200 píxeles/centímetro, tendremos una imagen de 4x3 centímetros.


Y ya está, eso es todo, no hay más misterio. La resolución es sin duda la clave para entender todo esto. Entendido y asimilado el concepto de la resolución, el resto es más fácil. Y asumiendo que hasta este punto ya lo tenéis claro, vamos a profundizar un pelín más.

Si habéis trabajado mínimamente con anterioridad en algo de esto, estaréis de acuerdo conmigo en que 100 píxeles/cm no es una resolución muy habitual, por dos motivos:
     - El primero sería ¿píxeles....por centímetro? No es nada habitual usar los centímetros. Y aquí viene una complicación para todos aquellos que no somos anglosajones: la medida habitual para medir la resolución es píxeles por pulgada. PPP por sus siglas en español, PPI por sus siglas en inglés (píxel per inch).
     - Y el segundo motivo es ese 100, al que no estamos muy acostumbrados (si usáis cualquier programa de edición de imágenes, estaréis de acuerdo conmigo). Son más habituales otro tipo de valores, como por ejemplo 72, 150 o 300. 72 es la resolución que tradicionalmente han tenido las pantallas de ordenador, motivo por el que es muy común; aunque hoy en día las pantallas cada vez pueden alcanzar resoluciones mayores.

Como un último añadido nos gustaría hablar de la profundidad de color. Es una propiedad que poseen las imágenes que nos da información sobre la cantidad de colores diferentes que podría adoptar cada uno de sus píxeles. Es decir, con una profundidad de color de valor 10, cada píxel tendría que elegir entre 10 colores diferentes.

Esta propiedad se mide como 2n, siendo n la cantidad de bits sobre los que podrá escribir información dicho píxel. Algunos ejemplos de profundidad de color:
- 1 bit (21): dos posibilidades, 0 ó 1, resultará imágenes exclusivamente con blancos y negros.
- 8 bits (28): 256 colores
 - 16 bits (216): 65536 colores diferentes.
Leer más

8/9/13

Generación de imágenes por ordenador (CGI)

Las imágenes generadas por ordenador o más conocido comúnmente por sus siglas en inglés CGI (Computer-generated imagery), son un campo tan amplio que hoy en día abarca casi la totalidad de los elementos gráficos que nos rodean. Desde los videojuegos o el cine hasta la medicina y la publicidad han visto un gran desarrollo y potencial en el la generación de imágenes por ordenador.

Básicamente se trata de la utilización de los ordenadores para la creación, representación y manipulación de imágenes, es decir, de algún modo todo lo que tiene que ver con el dibujo mediante ordenador podría englobarse en lo que se conoce como CGI.

De una forma muy global se puede establecer el inicio de este campo en la década de los 50 cuando en el MIT se consiguieron las primeras representaciones de dibujos vectoriales mediante los tubos de rayos catódicos o CRT y que junto con la aportación de Ivan E. Sutherland en el desarrollo de lo que hoy conocemos como dibujo asistido por ordenador (CAD), se marcaron las pautas para todo el desarrollo posterior de la generación de imágenes por ordenador.


A partir de aquí, y junto con el avance en el desarrollo de los ordenadores y de la potencia de cálculo de los mismos ha llevado a que actualmente la síntesis de imágenes por ordenador no conozca más límites que la imaginación.

El campo donde más fácilmente podemos ver esta evolución es en el de los videojuegos o el cine. Desde la aparición en el cine del primer personaje completamente animado y generado por ordenador en Las aventuras del joven Sherlock Holmes (1985) hasta la primera película generada íntegramente por ordenador, Toy Story (1995) no hay mas que diez años de diferencia. Esto nos da una idea de lo rápido que ha avanzado esta industria. 


Actualmente, el CGI está tan integrado en el cine y la publicidad que se hace casi imposible distinguir cuando se trata de imágenes reales y cuando no. En películas tan conocidas como Terminator 2, la utilización del ordenador para la generación de los efectos especiales ya estaba completamente asumida por la industria, pero no es hasta 1993 con Parque Jurásico cuando la integración y el realismo es tal que se hace indistinguible para el espectador, lo cual supuso un antes y un después para toda la industria cinematográfica.



Hoy en día es prácticamente inconcebible la realización de películas y publicidad sin la utilización de ordenadores para generar escenas, personajes o efectos especiales, porque su realización por estos métodos es mucho más económica que la construcción de decorados o la animación tradicional en stop-motion.

A pesar de ser esta una de las aplicaciones más reconocida por todos nosotros, la generación de imágenes por ordenador esta al alcance de cualquiera que maneje un ordenador personal y gracias a la ingente cantidad de software existente en el mercado, cualquiera puede acceder a estas herramientas. Desde la utilización de las herramientas más comunes como el Photoshop, Gimp, Corel o Illustratror, hasta las más complejas como Autocad, Modo, Grasshopper, Zbrush o Blender, todas ellas nos permiten explorar diferentes ramas del CGI.

En cualquier caso cuando hablamos de CGI casi siempre se relaciona más con el campo de la construcción de escenarios o figuras tridimensionales con el objetivo de sacar imágenes en 2D que puedan ser proyectadas en pantallas o impresas en papel. La búsqueda o no de realismo con estas imágenes o las aplicaciones que ello pueda tener son tan variadas que pueden ir de campos como la arquitectura a la medicina o la industria del juguete.


Llegados a este punto podemos comenzar a hablar de lo que se denomina “render”, lo cual se puede definir como una imagen digital generada por ordenador a partir de un modelo tridimensional que mediante un software especifico que nos ayuda en el uso de algoritmos y diferentes formulas provenientes del campo de la Óptica (reflexión, oclusión, refracción, etc) nos permite generar imágenes extremadamente realistas y complejas.


Pero estas técnicas no solo son usadas como métodos de representación para acercar al público general el posible diseño de un edificio, de un mueble o el envase de un perfume, sino que además, en la manos adecuadas pueden dar lugar a trabajos con verdadero valor en sí mismos.

Dado que en el mundo en que nos movemos, la facilidad de acceso a la información que supone internet, y la sencillez que algunos softwares ofrecen al usuario medio, prácticamente cualquier persona puede acercarse a la realización de render con mejor o peor resultado y de una forma muy sencilla. Pero como siempre, el software no lo es todo.

Como iremos viendo poco a poco en este blog, en el mundo de los renders de arquitectura, el modelo tridimensional es solo una ínfima parte del trabajo de un buen infografista 3D (no más del 10%), aunque habitualmente la mayoría de la gente cree que es lo principal. Pero para conseguir buenas imágenes es necesario realizar un buen tratamiento de la luz, del encuadre, la perspectiva, la composición de la escena, la definición de los materiales, etc. Y para todo ello no son necesarios únicamente conocimientos del software empleado, que al final es lo de menos, sino que se necesitan algunos conocimientos básicos de fotografía o de física para saber como se comportan los materiales o como realzar una imagen para ir más allá de una simple representación tridimensional y conseguir transmitir algo más con ella.


© Olivier Defaye/AOKI/CG World / Francia

© Juan Altieri / Uruguay
Leer más