Mostrando entradas con la etiqueta Software. Mostrar todas las entradas

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

18/12/13

Sverchok: diseño paramétrico

Desde hace unos pocos años en el mundo de la arquitectura el diseño parámetrico ha ido tomando importancia. Cada vez aparecen más proyectos, sobretodo en los grandes despachos a nivel internacional, pero también en los más pequeños e innovadores, que integran el diseño parámetrico en sus procesos creativos.

Para entendernos por si hay alguien desubicado, el diseño paramétrico frente al diseño tradicional tiene la ventaja de que todos los elementos que dibujamos pueden tener relación entre ellos, de modo que una modificación sobre un elemento X puede tener repercusión sobre otro elemento Y cualquiera, sin la necesidad adicional de modificar tal elemento a posteriori.

A día de hoy, cuando hablamos de diseño paramétricco hay un software que es el claro destacado: Grasshopper. Más aún, me atrevería a decir que prácticamente tiene el monopolio, al menos cuando nos referímos a un diseño paramétrico formal. Existen otros softwares de diseño paramétrico, como Revit o Ecotec, sin embargo estos últimos no están enfocados a paramétrizar el diseño formal del edificio, sino otros aspectos relacionados con la economía o con la eficiencia energética.

Grasshopper no es un programa en si, sino que es un plugin que trabaja sobre Rhinoceros, programa de modelado basado en nurbs, es decir, formas basadas en modelos matemáticos. El principal problema de Grasshopper desde nuestro punto de vista es que es software privativo, que aunque gratuito, requiere de Rhino para trabajar, con el importante coste que supone la licencia del mismo, además de poder usarse sólo en Windows (existe una versión para OS X en desarrollo).


Hace unos tres meses Nikita Gorodetskiy junto a Alexander Nedovzin presentaron en el foro BlenderArtists una nueva herramienta en la que habían empezado a trabajar, Sverchok, que busca hacer posible un diseño paramétrico similar al que podría hacerse con Grasshopper, pero trabajando sobre Blender, software multiplataforma y de código abierto, programado en Python.

Gracias a esta filosofía y a que siempre nos ha interesado este tipo de herramientas, hace cosa de un mes nos pusimos a intentar desarrollar algunos nodos adicionales para Sverchok, tratando de facilitar ciertas acciones que en ese momento requerían una cantidad casi desproporcionada de nodos, como es por ejemplo hacer una línea o un plano seleccionando la cantidad de subdivisiones.


Desde ese momento y tras entablar contacto con Nikita, nos vimos envueltos en el proyecto y poco a poco hemos ido desarrollando nuevos nodos, principalmente de primitivas (linea, plano, círculo, esfera o cilindro), pero también otros que pueden resultar de gran utilidad, como el de hallar el área de cualquier polígono o el de evaluar el recorrido a lo largo de una línea.

Para entender cómo funciona y cómo trabajar con Sverchok será importante entender cómo funciona a nivel interno. La diferencia con Grasshopper radica principalmente en el software madre, aquel sobre el que crearemos la geometría. Es decir, Blender y Rhinoceros tratan de forma ligeramente distinta la geometría que generan.

En Sverchok tendremos principalmente tres categorías de datos: vértices, lados/polígonos y matrices.

- Lo primero es aclarar que un vértice o vector serán definidos de la misma manera, por sus coordenadas, de este modo: (0, 0, 0). Un conjunto de vértices se representaría de la siguiente manera, siendo siempre todos los valores números decimales:

Vertices = [(0.0 , 0.0 , 0.0), (1.0 , 0.0 , 0.0), (1.0 , 1.0 , 0.0), (0.0 , 1.0 , 0.0)]

- Los lados o aristas, al igual que los polígonos, simplemente son grupos de números enteros que hacen referencia al orden que los vértices poseen dentro de la lista de vértices. Es decir, como es lógico, no puede existir una línea o un polígono sin los vértices que los componen. Una arista siempre estará definida por parejas de números enteros: [0, 1]. En este caso estaríamos uniendo los vértices 0 y 1 de la lista anterior (0 siempre es la primera posición de la lista)

Lados = [ [0, 1], [1, 2], [2, 3], [3, 0] ]

- Un polígono se compondrá por grupos de números enteros a partir de 3, que es el mínimo para formar un polígono (triángulo): [0, 1, 2, 3]. Este polígono estaría definido al unir los vértices 0, 1, 2 y 3, en ese orden concreto, de la lista de vértices anterior.

Polígonos = [ [0, 1, 2, 3] ] 


- Por último las matrices, que es quizá el elemento más complicado de entender. En Blender toda geometría tiene siempre asociadas unas propiedades adicionales a lo anterior. Son las siguientes: localización, escala y rotación.
  1. - Localización: las coordenadas de los vértices anteriores siempre son coordenadas locales, es decir, referidas a un centro (0, 0, 0) que puede no ser el centro global de la escena. Este centro global viene definido dentro de esta matriz. Si un vértice tiene coordenadas locales (1, 1, 0), pero su localización dentro de la matriz indica la posición (4, -1, 0), la posición global de este vértice será (5, 0, 0) .
  1. - Escala: esto determinará la escala de la malla en las tres direcciones del espacio, de una forma similar a lo anterior: (1, 1, 1).
  1. - Rotación: por último también definiremos la rotación de nuestra malla respecto a los 3 ejes de la misma forma, indicando la rotación en grados: (0, 0, 0)
En las siguientes imágenes iremos mostrando los nodos de los que se dispone a día de hoy:


Básicos: el nodo “Objects_in” nos sirve para capturar gemoetría que hayamos modelado previamente en Blender para trabajar a partir de ella. Los otros dos son nodos de visualización; el primero de visualización de geometría 3D, es decir, para obtener la vista de la geometría que estemos generando; además también podremos "bakear" o generar dicha geometría dentro de Blender.. El último nodo sirve para visualizar en forma de datos esta misma geometría, pudiendo acceder a las coordenadas de cada vértice, los lados o los polígonos que generemos.


Números: estos nodos son generadores matemáticos. Con ellos podemos generar cualquier tipo de número, entero o decimal, así como series de números, números aleatorios o conversión de decimales en enteros. Con los dos útlimos nodos podremos hacer cualquier tipo de operación matemática sobre los números generados. El nodo “Formula 2” nos permita también efectuar operaciones sobre vectores (recordar que en Sverchok los vectores y los vertices tienen las mismas características).


Listas: al trabajar con información y modelado paramétrico, las listas suelen ser un elemento muy importante. Por eso existen tantos nodos dedicados a trabajar con ellas. Con estos nodos se puede trabajar con cualquier tipo de elemento de entrada, por ejemplo un listado de vértices, y hacer operaciones sobre ellos, como ordenarlos en un orden u otro, hallar la cantidad de elementos, sumar todos ellos, elegir una cantidad concreta, etc. etc. También podremos unir diferentes listas o dividirlas según parámetros concretos.


Generadores: estas pilas están pensadas para ahorrar trabajo, consiguiendo hacer figuras que de otro modo resultarían muy complicadas. Además para cada una de ellas se ha pensado en ofrecer la mayor cantidad posible de opciones de configuración, permitiendo así por ejemplo el nodo círculo no sólo hacer círculos, sino también cualquier polígono regular seleccionando la cantidad de vértices.


Vectores: esta serie de nodos nos permite hacer operaciones sobre los vectores y las matrices. Desde los más básicos que nos permitirán componer o descomponer vectores/vértices en sus componentes cartesianas, hallar vectores perpendiculares o desplazarlos, hasta otros con los que podremos definir las matrices de las que hablabámos al principio, definiendo posiciones, escalas y rotaciones.


Modificadores: este es quizá el nombre menos adecuado de todas las categorías, pero, cómo hemos dicho, la herramienta está en pleno desarrollo. Aquí encontraremos un variado de utilidades. Por ejemplo tenemos nodos para hallar áreas, distancias y centros de polígonos. También podremos evaluar líneas a lo largo de su recorrido o unir múltiples vértices según ciertas condiciones. Por último los nodos “Adaptative Polygons” y “Cross Section” nos permitirán hacer operaciones algo más complejas; con el primero podremos adaptar y propagar una geometría dada sobre otra que será la receptora, mientras que con el segundo podremos seccionar cualquier tipo de geometría mediante cualquier cantidad de planos de matrices dados.

Indudablemente hay mucho trabajo por delante para llegar a conseguir lo que puede hacerse con Grasshopper. Sin embargo la cantidad de nodos que tenemos empieza a ser importante y su uso puede derivar en asombrosos resultados imposibles de pensar hace muy poco tiempo.

Como arquitectos nos resulta realmente interesante tener la posibilidad de crear herramientas propias. Tanto Blender como Python son muy abiertos y existe una gran cantidad de documentación sobre ellos, por lo que integrar dentro de Sverchok tus propios nodos para conseguir acelerar y optimizar tu proceso creativo, está realmente al alcance de tu mano.

Si queréis algo más de información aquí os dejamos la web de Nikita (en ruso) y el enlace a la web del addon en Blender:
  1. http://nikitron.cc.ua/blend_scripts.html
  2. http://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/Nodes/Sverchok
En un futuro probablemente crearemos más post para mostrar cómo va evolucionando la herramienta o incluso para enseñar proyectos en los que empecemos a usarla.
Leer más