PIZiadas gráficas

PIZiadas gráficas

Mi mundo es la imagen.

Animación 3D, Ejemplos: Espumillón de navidad [ Blogs experimentales ] [ Blender ]

El espumillón de navidad es una tira trenzada con “pelos” o “elementos planos alargados” realizados con diferentes materiales (seda, papel plateado, plásticos); generalmente presenta un aspecto brillante o monocromo; lo usamos como elemento de decoración en navidad; sirve de guía para colgar diferentes adornos navideños.

Modelar un objeto en Blender puede ser abordado con diferentes técnicas de edición. En éste caso vamos a partir de la utilización de curvas para definir su forma. Abordaremos el problema en tres acciones de desarrollo:

  • Crear un tubo de gran longitud y pequeño diámetro que constituirá la base del objeto.
  • Añadira su superficie las “tiras” o “pelos” que le dan su forma característica.
  • Asignar el material y definir las características de la iluminación para obtener el efecto visual que buscamos.

Eje estructural del espumillón

Las curvas de Bezier pueden ser editadas con facilidad para construir el recorrido del espumillón.

Utilizaremos una escena sencilla formada por un cubo y una esquina, por lo que además del objeto “Cube” necesitaremos tres objetos “Plane” para el suelo y las dos paredes.

La escena es poco relevante por lo que se ha simplificado en el ejemplo.

Generar la guía del espumillón

Primero insertaremos una curva de Bezier sobre el cubo, de forma similar a lo visto para inncorporar cualquier otro objeto: (con el cursos sobre la ventana 3D, pulsaremos “espacio” y a continuación :

Add->Curve->Bezier Curve”

La curva nos servirá para guiar el espumillón sobre el objeto, deberemos situarla a una cierta distancia para reservar espacio para las fibras o pelos.

En la versión 2.49:

Al seleccionar la curva y entrar en el modo de “edición” de objetos tendremos acceso a la pestaña “Curve and Surface”. Necesitaremos habilitar la opción “3D” si queremos envolver un objeto, si el espumillón se encuentra sobre un plano no será necesario, simplificando el trazado de la curva.

También podemos generar una curva 2D y utilizar posteriormente un “lattice” o “armature” para guiarla por el espacio 3D.

En la versión 2.6x:

Menu Object data

Menu Object data

Seleccionaremos la curva y accederemos al menú “Object data” para modificar los parámetros de la curva. Los campos de actuación son similares en ambas versiones, aunque cambia su disposición en el menú y en algún caso la etiqueta identificativa.

Por defecto se encuentra activada la opción “3D” por lo que podremos mover líbremente sus puntos en el espacio, adaptando la curva a nuestras necesidades. Ajustaremos tanto los puntos como la dirección de las tangentes en cada uno de ellos hasta adaptarla a nuestro gusto.

Generar el tubo a partir de la guía:

A partir de la curva de Bezier podemos generar un tubo, Necesitaremos una nueva curva, en particular podemos usar una circunferencia de Bezier para enlazarla en el campo “BevOb:” (Bevel Object) que se aprecia en la figura.

Tanto el diámetro (escala) de la circunferencia como el recorrido de la curva de Bezier que forma el tubo, son modificables con sus correspondientes manipuladores.

Durante la edición del tubo, podemos utilizar un diámetro para la circunferencia que se asemeje al del espumillón terminado. Una vez concluida la edición se reduce el diámetro al del núcleo del espumillón. la superficie que vamos a generar es la de la “cuerda” o eje que sujeta las tiras o pelos que lo cubren. Es un diámetro pequeño, 10 veces menor que la longitud de los pelos. En nuestro caso hemos usado 0.025 unidades Blender para su dimensión.

El último paso del modelado del eje del espumillón consiste en generar una superficie sobre la que situaremos las tiras de fibras o “pelos brillantes”.

El tubo que hemos construido es una representación matemática basada en la curva de Bezier y en la circunferencia que hace de sección.

Pelos del espumillón

Blender utiliza mallas para generar pelo.

Es necesario convertir el tubo en una superficie. Es una buena idea hacer una copia del objeto tubo (Alt + D) y moverlo (M) a otra capa por si debemos hacer alguna modificación posterior.

Una vez que se ha convertido el “tubo” en una malla la operación es irreversible.

Pasaremos a tener un conjunto de superficies triangulares y habremos perdido la capacidad de manipilación mediante los puntos de Bezier. En el modo de edición observaremos que en lugar de los puntos de control de la curva de Bezier, hemos pasado a tener vértices de la malla poligonal, cuya edición es más laboriosa.

Para convertir el objeto (tubo) en una malla (Mesh) seleccionaremos el objeto y presionaremos la tecla Alt y a continuación la tecla “C“.

Convertir a malla

Convertir a malla

Sistema de partículas

De nuevo cambiará la forma de generar el sistema de partículas, dependiendo de la versión que estemos utilizando:

Versión 2.49

Una vez convertido en una malla poligonal, podemos incorporar un sistema de partículas que simule el pelo. Seleccionaremos la malla y en modo “Objeto” activaremos el “Particle buttons” para añadir (“Add New”) un nuevo sistema de partículas que configuraremos a continuación.

Deberemos indicar que el sistema de partículas es específicamente el generador de pelo (Hair).

Esto lo haremos desde el selector que se encuentra en los nuevos botones de la pestaña “Particle System” que aparecen al añadir el nuevo sistema de partículas.

La cantidad de pelos (Amount) es controlable mediante una variable que podemos modificar. Un número elevado ralentizará los cálculos, por lo que se debe utilizar con prudencia.

El principal parámetro es la longitud del pelo, que se determina indicando la velocidad de partida de las partículas desde la superficie (son partículas).

La velocidad “Normal” es perpendicular a la superficie. Si únicamente aumentamos este valor, veremos una imagen con un patrón demasiado regular. Deberemos aportar un cierto valor aleatorio (Random) o tangencial (Tan) así como rotación de las mismas para “desordenar” los elementos.

400 pelos

4000 pelos

400 pelos aleatorios

Versión 2.6x

Accederemos al menú que permite gestionar los sistemas de partículas:

Añadiremos un nuevo sistema con el botón “+”

Deberemos indicar que el sistema de partículas es específicamente el generador de pelo (Hair).

El principal parámetro es la longitud del pelo, que se determina indicando la velocidad de partida de las partículas desde la superficie (son partículas).

La velocidad “Normal” es perpendicular a la superficie. Si únicamente aumentamos este valor, veremos una imagen con un patrón demasiado regular. Deberemos aportar un cierto valor aleatorio (Random) o tangencial (Tan) así como rotación de las mismas para “desordenar” los elementos.

Activaremos el modo “Advanced” para acceder a algunos menús que no se encuentran activos por defecto y que permiten ajustar los valores mencionados.

Podemos añadir algo de rotación y velocidad tangencial hasta conseguir el efecto de relleno deseado.

Ambas versiones

Este modelo que hemos desarrollado nos permite obtener representaciones del espumillón formado por pelos finos, en la siguiente sección se verá como generar el más corriente formado por “tiras” planas de pequeño espesor y anchura. Como ejemplo de los resultados que se pueden obtener veamos la siguiente imagen. (pulsar para ampliar)

Texturas del espumillón

En general se comportará como una superficie brillante, con un alto grado de reflexión, por lo que el color propio será menos relevante que el circundante.

Para dotar de una cierta superfíciea los pelos del espumillón, sustituiremos éstos por “tiras” rectangulares.

Añadiremos a la escena un “plano” que escalaremos hasta darle la forma y tamaño de la tira que deseemos. Es importante comentar que la dirección principal de la tira se corresponde con su eje “x”

A continuación, asociaremos esta “tira” a la visualización del sistema de partículas en la pestaña “Visualization”. Primero indicaremos que queremos sustituir el sistema de partículas por un objeto (object) e introduciremos su nombre en el espacio reservado para ello.

En la versión 2.6x el menú que permite esta funcionalidad se encuentra en “Visualization”

Si la “tira” que hemos generado no tiene su origen en el origen global de coordenadas, esta transformación o desplazamiento se sumará a la del pelo, distorsionando el resultado.

Se han acumulado las transformaciones relativas con las absolutas de cada pelo, generando esa impresión de “explosión” del objeto.

Para situar exactamente en el origen el elemento “tira” que hemos obtenido modificando nuestro plano, podemos recurrir a la ventana de entrada de coordenadas, que obteníamos pulsando la tecla “N“, con el cursor sobre una de las ventanas 3D.

Modificaremos los parámetros que afectan a su localización “Loc” hasta dejarlos a cero.

En estas condiciones sólo nos faltará asignar propiedades al material de la “tira” (plano) de forma que se realice un cálculo con “raytracing” para los brillos especulares.

Indicaremos o activaremos en el material “Ray Mirror” e introduciremos un valor de un 80% del disponible gracias a la barra de desplazamiento. También añadiremos color si deseamos que lo tenga.

El último paso consistirá en añadir luces que sean de colores vivos para conseguir reflejos multicolores. Suelo emplear tres focos cada uno con uno de los colores básicos (R, G, B) indicando que se realicen sombras mediante Ray tracing.

Puedes ver algunos ejemplos en la página de fondos de escritorio (Wallpapers)

Otros enfoques

Hay muchas formas de plantear el modelo. Se ha optado por una sencilla de ejecutar y que tiene continuidad con los conceptos expuestos sobre Blender en el blog. Dependiendo del enfoque de aprendizaje se puede plantear de otras maneras, con ventajas e inconvenientes.

Por ejemplo, sin ser las únicas, se plantean dos enfoques que se adaptan a un nivel medio de aprendizaje.

  • Utilizar una superfície cilíndrica cuya forma es gobernada por la curva. Una alternativa interesante para no perder el control de la curva, que sirve de eje del objeto, y poder mantener la capacidad de modificación mediante la curva de Bezier
  • Utilización de un lattice para la transformación de un cilindro. No es recomendable por la dificultad de su “guiado” continuo (del lattice) lo que es fundamental para simular formas “filiformes” o muy largas (como es el caso del espumillón).

Colisiones (actualización)

Un detalle que no se había comentado previamente y que me habéis preguntado por correo y comentarios es cómo solucionar que el espumillón parezca reposar sobre el objeto, sin penetrar en su interior.

La solución a este problema pasa por activar el cálculo de colisiones entre los objetos.

En la primera imagen que ilustra el post tenemos un cubo y sobre su cara superior el espumillón que hemos situado a una cierta distancia, pero la longitud del pelo puede crear interferencias en las zonas de contacto.

Deberemos activar “en ambos elementos” el análisis de colisiones; En modo objeto (Object pulsando F7 o el botón con ejes) entraremos al modo de física activando el “Physiscs button” y simplemente activaremos el botón “Collision“. Hay un conjunto de parámetros que permiten ajustar lo que entendemos por “contacto” definiendo distancias mínimas y máximas para este cálculo, que explicaremos al ver este módulo. Para nuestro caso podemos aceptar los valores por defecto.

Versión 2.6x

De nuevo el interface difiere ligeramente, situándose el menú que permite añadir colisiones en el apartado “Physics”

Tutorial Blender