tutoriales

Tutorial de Houdini: Edificios procedimentales

20 abril, 2019
Califica esta publicación

Explorar edificios complejos y técnicas procedimentales en Houdini para ir más allá de la simple caja.

Este tutorial fue escrito por la increíble Anastasia Opara

Herramientas utilizadas

Houdini

Photoshop

Para apreciar lo que significa el «realismo» en el contexto de la creación artística procedimental, primero discutamos ciertos aspectos de nuestra percepción. Los humanos son grandes máquinas de reconocimiento de patrones. Tratamos con una gran cantidad de datos a diario y en un momento dado nuestro cerebro comienza a clasificarlos en «estereotipos» o «patrones». Lo hemos visto una vez, no tenemos que volver a verlo para apreciar su significado.

Sin embargo, nuestro cerebro es tan bueno en el ‘archivado’ que extraer la información original puede ser problemático. En mi opinión, esa es la base de una de las partes más intrigantes del procedimentalismo. Con el procedimentalismo, tienes una pizarra en blanco; una máquina sin conocimiento del ‘arte’, sin sentido del ‘arte’.

Por lo tanto, la pregunta es: «Â¿Puedes descifrar y descomponer en trozos comprensibles lo que es ‘atractivo’,’guapo’,’real’ en última instancia?» El arte es una abstracción, al igual que la programación, y vamos a hacer que estas dos dimensiones trabajen juntas para producir el resultado que ves aquí.

Piensa en ello como un proceso de pintura – empezaremos con pinceladas amplias y generales e iremos más y más allá hasta llegar a los detalles más finos. En lugar de pinceles, nuestras herramientas serán VEX (un lenguaje Houdini basado en C++) y nodos Houdini nativos.

Las casas generadas se hacen completamente dentro de Houdini, desde la silueta inicial hasta el sombreado final. Este tutorial le proporcionará una visión general de algunas de las técnicas de procedimiento que estoy utilizando para el proyecto Procedural Lake Houses.

Paso 01 – Hacer una silueta del cuerpo

La idea detrás de una silueta de cuerpo procedimental es bastante simple. En primer lugar, debemos preguntarnos: ‘¿Cómo construimos algo cuando lo hacemos manualmente?’ y la respuesta es que siempre construimos algo en relación con lo que ya tenemos.

Por lo tanto, nuestro punto de partida será una caja, que convertiremos en una Nube de Puntos restringida a una cuadrícula con un nodo Scatter y VEX (también puedes usar Puntos desde Volumen), y esa Nube de Puntos será un controlador para la colocación de todas las cajas futuras. Y esas futuras cajas recibirán absolutamente el mismo tratamiento, por lo tanto, impulsando el siguiente bucle de colocación.

Paso 02 – Base del techo

Una vez que tengamos el cuerpo establecido, podremos seguir construyendo nuestras relaciones, y el siguiente paso será la creación de los techos.

Ya tenemos una gran base, que son los polígonos de la superficie superior de nuestro cuerpo, que podemos aislar con un nodo Blast pidiéndole que elimine los rostros, cuya normal no está hacia arriba. Sin embargo, los polígonos restantes representan la cuadrícula, y nos gustaría tener un polígono cuadrado por piso.

Al fusionar las baldosas de cuadrícula con las de sus vecinos a partir de una aleatoria, conseguiremos una gran variedad de patrones.

Paso 03 – Altura de los techos

El siguiente paso sería calcular la elevación de cada techo. Empezaremos con una elevación abstracta X, que asignaremos a cualquier techo, por lo que será nuestro punto de partida.

Observando a los vecinos del tejado y su posición relativa, podemos etiquetar a cada vecino con una elevación de X+1 o X-1. Podemos repetir este bucle hasta que cada techo obtenga un cierto valor relativo a nuestra X inicial, el cual, una vez completado, se convertirá en un atributo numérico. Ese atributo impulsará la fuerza de la extrusión.

Paso 04 – Colocación de los módulos del cuerpo

Ahora es el momento de rellenar nuestra base de edificios procedimentales con módulos prefabricados. La idea es bastante similar para cada activo, por lo tanto, voy a hacer un ejemplo del módulo Escaleras.

Aislando los polígonos que tienen una posición en Y por encima del primer piso de nuestra red, podemos encontrar las posibles ubicaciones. Sin embargo, algunos de ellos pueden estar situados en lugares que harían que nuestras escaleras se intersectaran con el cuerpo.

Por lo tanto, tenemos que lanzar rayos desde esa posición para comprobar si el espacio para nuestra posible colocación no está ocupado. Esto se puede lograr con VEX o Ray SOP.

Paso 05 – Coloque los módulos del techo

Los módulos de techo son un poco más complicados porque requieren un atributo de escala personalizado, ya que, a diferencia del cuerpo con restricciones de red, cada uno de nuestros techos tiene sus propias dimensiones y escala.

Al remuestrear los bordes de nuestro techo con nuestros radios personalizados con VEX, podemos extraer las posiciones de los módulos de los bordes del techo. En cuanto a la orientación, podemos calcular un vector basado en la dirección de la base del techo que serviría de guía.

Paso 06 – Coloque las puertas y ventanas

El último paso para la colocación del módulo procedimental es colocar puertas y ventanas. Necesitaremos crear una semilla aleatoria que controle qué caras de nuestro cuerpo se convertirán en puertas o ventanas.

También tendremos que tener en cuenta que no queremos puertas donde no haya acceso a un piso, o ventanas que den a paredes o techos. Esto puede lograrse también con el ray casting y etiquetando cada cara con un atributo de su tipo, como ‘puerta’, ‘ventana’ o ‘pared’.

Introduciendo un control de probabilidad, podemos manipular cuántas ventanas queremos en el resultado final.

Paso 07 – Pool de Semillas de Patrones

Ahora es el momento de pasar a la creación de patrones procedimentales para nuestras paredes. En primer lugar, no queremos que cada pared tenga un patrón único porque eso sería demasiado ruidoso. Por lo tanto, vamos a crear un grupo de posibles semillas para cada pared para elegir. Esa semilla impulsará la creación del patrón.

De esta manera podemos controlar cuántos patrones queremos por edificio y qué proporción única entre vigas de madera y escamas de madera tendrían.

Paso 08 – Generar patrones de madera

Para conseguir una estructura de vigas de madera creíble, empezaremos con un nodo Divide para obtener particiones iguales de un tamaño medio de viga que nos gustaría tener.

Sin embargo, en la vida real nunca serán totalmente idénticos, especialmente si la casa es vieja. Por esa razón, vamos a compensar aleatoriamente los bordes para dar a las divisiones un aspecto más «orgánico». Lo haremos tanto en dimensiones de profundidad como de anchura.

Paso 09 – Crear el patrón de escamas

La base de nuestras balanzas será nuestra pared dividida en una malla cuadrada, donde cada azulejo es cortado para formar una forma de escama.

Usted puede pensar en ello como una línea de montaje de fábrica, donde cada azulejo de la pared se coloca sobre el origen para asegurar que las ‘cuchillas’ de nuestra operación de corte (Clip SOP) siempre tengan la ubicación relativa correcta.

Paso 10 – Deformación del techo y del cuerpo

Uno de los pasos vitales para darle carácter a nuestro edificio es hacerlo torcido. Lo haremos por capas, empezando por el techo. Es crucial no crear agujeros en nuestra geometría durante esta etapa, por lo que marcaremos los puntos clave y los excluiremos de la deformación.

Usaremos un nodo Lattice, donde traduciremos, escalaremos y rotaremos partes de nuestra caja Lattice, la cual es responsable de la deformación. El mismo paso se repetirá para todo el cuerpo y los pisos superiores, dando un resultado más complejo visualmente que el de una sola deformación.

Paso 11 – Pilares procedimentales

Otro activo totalmente procedimental son los pilares (base). Aislando la marca del edificio y ampliándola, podemos obtener fácilmente el área necesaria para la base.

En cuanto a las vigas de madera, la técnica es similar a la generación de patrones de madera. En este caso, sin embargo, tendríamos largas rayas de geometría, que no parecerían muy realistas. Por lo tanto, para romperlas, haremos un lazo donde encontraremos la viga de madera más grande y, si es demasiado grande, la dividiremos.

Continúe hasta que todas las vigas de madera satisfagan nuestra condición de longitud.

Paso 12 – Sombreado y renderizado en Mantra

Hasta ahora hemos acumulado muchos atributos, que utilizaremos para impulsar nuestros materiales procedimentales y aleatorizar la coloración de nuestras vigas de madera y su desplazamiento tonal. Asumiremos que la casa no fue construida con el mismo árbol (de hecho, podría haber sido construida con múltiples especies).

Todos estos toques extra y la atención al detalle crearán una sensación de artesanía en el modelo final generado. Muchas dependencias para la distribución de cosas como el musgo están controladas por la posición Y, lo que ayudará a regular las múltiples capas de ruidos que sirven como una máscara.

Paso 13 – Componga la imagen promocional

Una vez terminado el sistema, podemos pedirle que genere tantas casas como queramos. Realicé baking a alrededor de un centenar y luego seleccioné los que funcionarían mejor con el boceto de la composición que hice para la toma promocional.

El fondo del render final es una foto de mi archivo personal de un viaje al sur de Francia. Una helada mordaz y, al mismo tiempo, una mirada cálida y suave de madrugada se grabó en mi mente y traté de recrear la sensación en la composición final. La superficie del agua y la reflexión es un pase de renderizado separado, que fue compuesto en la imagen principal más tarde.

Detalles más pequeños como las heladas en los techos, las redes y las pequeñas siluetas de las personas en los barcos están pintadas en Photoshop. Una vez que los pases de render principales fueron ensamblados juntos, la edición de color y el estado de ánimo se lograron también en Photoshop.

 

No hay comentarios

Dejar un comentario