¿Cómo mover líquidos en Blender sin simular fluidos?

¿Cómo mover líquidos en Blender sin simular fluidos?
Hemos visto que podemos crear un líquido estático, sea un océano o unas olas, o uno dinámico que se adapte a la situación, pero también existe un punto intermedio donde obtenemos "líquido" estático que parece dinámico. Aunque no es tan versátil, destaca porque consume muchos menos recursos. 

Líquido móvil en recipiente

Este método es para un recipiente, principalmente botellas, aunque se puede usar en vasos, copas o lo que veas adecuado donde se perciba el contenido. Ofrece el mejor rendimiento, con un líquido  queo responde inmediatamente a la inclinación y parece vaciarse, pero no se va a ninguna parte y la respuesta es demasiado realista. Es tan falso como las aplicaciones para móvil donde fingías beber cerveza, que se aprovechaban del giroscopio, pero hay situaciones donde no necesitas más.

Pasos previos

Botella de vidrio con contenido sin material.
Aplicárselo al contenido permite conservar el grosor del recipiente

Vamos a crear un material que responda a la inclinación de la malla. Tienes dos opciones:

  • Aplicarlo al propio recipiente, lo que tendría sentido si tiene unas paredes muy finas.
  • Usar una malla que se ajuste al interior y aplicarlo a esta. 

Para el ejemplo, elijo la segunda opción, donde he tomado los siguientes pasos:

  1. He hecho la botella con hueco en el interior.
  2. He creado un cubo algo más grande y le he añadido el modificador Booleana, eligiendo la botella en el apartado de objeto. 
  3. Al aplicar el modificador, elimino aquellas partes del cubo que se quedan fuera (En Modo edición, selecciona un vértice, borde y cara y pulsa L, luego Supr). 

Hecho esto, nos interesa que tanto la malla del contenido como el recipiente se muevan al unísono. Para ello, seleccionamos (manteniendo pulsado mayús) tanto el contenido y como el recipiente, en este mismo orden, y asignamos superior (Ctrl+P), seleccionando objeto. 


Aparte, creamos un Vacío (mayús+A>Vacío>Cualquiera vale) que nos servirá luego. Este objeto será invisible en el procesado pero se usa como posición de referencia.


Seleccionamos la botella y, pulsando el botón derecho del ratón, en Definir origen (🟠), lo recolocamos a Origen al centro de masa (Volumen). De esta manera, cuando inclinemos la botella, girará en torno a su centro, no su base.

Material 

Eligiendo el líquido y el gas.

Para empezar, necesitamos un Mezclar sombreadores (Sombreador>Mezclar sombreadores) conectado a Superficie de Material. ¿Qué conectamos al Mezclar sombreadores? 

  • En Fac, una Rampa de color (Convertir>Rampa de color) con la interpolación Constante y la parada negra en la izquierda y la blanca a la derecha.
  • En el primer Sombreador, el que actúe como líquido. Tienes varias opciones:
    • BSDF Principista: el Color base nos permite elegir el color. Si le conectamos una Rampa de color, puede tener más de uno. Reducirle la Rugosidad aumenta la reflectividad. Para hacerlo transparente, debemos aumentar la Influencia en Transmisión.
    • Otros sombreadores: esta es la parte que se va a ver. Tienes vía libre para experimentar.
  • En el segundo Sombreador: esta será la parte que no se verá o que representa el aire. 
    • BSDF Transparente: la opción lógica. Si no se va a ver, no necesitas más. La opción si aplicas el material sobre el contenido.
    • BSDF Principista: sea porque quieres tener dos líquidos inmiscibles (p.ej. agua y aceite) o porque quieres lograr el mismo resultado que el BSDF Transparente con la Transmisión o Alfa al máximo. Si has aplicado el material sobre la botella, necesitarás este sombreador para reducir la Rugosidad.

Para que se visualice la separación, necesitamos:

  • Coordenadas de texturizado (Entrada>Coordenadas de texturizado): conectado en Objeto. En el apartado de Objeto, seleccionamos Vacío.
  • Mapeo (Vector>Mapeo)
  • Separar en XYZ (Convertir>Separar en XYZ): conectado por Z en el Fac de la Rampa de color.

Reduce el tamaño (S) del vacío hasta que su posición se corresponda con el nivel del líquido. Al desplazar verticalmente el vacío (G+Z), se llenará o vaciará el recipiente.   Además, al inclinar el recipiente (R), el nivel de líquido se mantendrá estable.

Añadimos un menisco casi imperceptible.

Para crear un sutil menisco en la superficie del líquido, necesitamos conectar Influencia de capa (Entrada>Influencia de capa) al mismo Fac de la Rampa de color. Como ya está en uso, colocamos un Mezclar (Convertir>Mezclar), donde la Z de Separar en XYZ irá en A y Fresnel de Influencia de capa irá en B. En este último, dejamos Fundido en 0.9

El líquido tiene la superficie ondulada.

Para crear cierta agitación cuando se incline, añadimos una textura Ruido conectada a Objeto de Coordenadas de texturizado y con Fac en Rotación de Mapeo. Cambiamos las Dimensiones a 4D, desmarcamos Normalizar, reducimos la Escala a 0.01 (aunque luego será irrelevante) y el Detalle a 0.

Añadiendo volumen.
Si has mirado desde arriba, quizás te percataste de que el líquido es un plano y está hueco. A Volumen de Material (el último nodo a la derecha), le conectamos un nuevo Mezclar sombreadores: 

  • Primer Sombreador se queda vacío.
  • Creamos un Volumen principista y lo conectamos al segundo Sombreador de Mezclar sombreadores.
    • Aumentamos Densidad y llevamos Anisotropía al máximo. 
  • Duplicamos (seleccionamos>mayús+D) la Rampa de color, que también estará conectada a Mezclar. Estará conectada tanto a Fac como a Color del Volumen principista
    • En sus herramientas (🆅), Invertimos la rampa de color (↔). Logramos lo mismo intercambiando las posiciones de las paradas blanca y negra. En el blanco usamos el mismo color que en Color base del BSDF Principista. En este Color base también podemos conectar la anterior Rampa de color, eligiendo en ese caso el color con la parada negra de la izquierda.

Volumetría en Eevee

En Eevee, para que se vea bien, debemos ir a Propiedades de procesamiento>Volúmenes>Rango personalizado y ajustar el Inicio (los metros de distancia a la cámara) y el fin (+ el grosor del objeto). Puedes ir poco a poco hasta que se vea mejor o usar la cuadrícula y la posición de la cámara en Propiedades de objeto para saltarte parte del ajuste.

Los tres últimos nodos.

Finalmente, a W y Escala de la textura Ruido le conectamos Mapear rango (Convertir>Mapear rango). En Valor de este nodo, conectamos Operar (Convertir>Operar) y cambiamos la operación a Seno. Finalmente, al Valor de Seno, le conectamos el nodo Valor (Entrada>Valor) o dejamos dicha casilla en 0. Inclina (R) para que se vea mejor el efecto. 
Ajustamos el controlador.

Lo único que queda es, en Valor (o en Valor del nodo Seno), hacemos clic derecho y elegimos Agregar controlador (Ctrl+D). En el tipo de controlador, cambiamos Canal de transformación (x) por Diferencia rotacional. En el primer objeto seleccionamos la malla donde está aplicada el material y en el segundo el Vacío. En Mapear rango, puedes ajustar el resultado con el valor de Desde máx.

Todos los nodos.

A partir de ahí tienes vía libre para personalizarlo. Por ejemplo, sería una buena malla a la que aplicar burbujas efervescentes.

Líquido siguiendo una trayectoria

Una esfera icosaédrica subdividida y una metabola.

En este método, tendremos un malla que fluirá borboteando por una curva. Al realizarse con partícula, necesitamos un emisor, para lo que vale cualquier malla, y una metabola (Metabola>Esfera) que actuará como partícula. La particularidad de las metabolas es que se combinan cuando se acercan.

Cae una cascada de metabolas.

Para que la malla se convierta en emisor, vamos a Propiedades de partículas y agregamos contenedor de sistema de partículas (+). En Procesar, cambiamos Procesar como Halo a Objeto. En la subsección inferior, en Objeto instanciado seleccionamos la metabola. Si pulsamos Reproducir animación, veremos que de la malla caen metabolas diminutas. Aumentamos Escala y también Aleatorizar escala, para que no todas sean del mismo tamaño. Volvemos a reproducir la animación y hay un torrente de figuras que se unen.

Las metabolas siguen la trayectoria hacia arriba.

Ahora toca crear una curva que servirá de trayecto. Creamos una curva Bezier con su inicio en el origen (🟠) del emisor. Con la curva seleccionada, en Propiedades de dinámicas, pulsamos Campo de fuerza, de tipo Curva guía. En el Modo edición () podemos añadirles más asas a la curva para que sea más larga y tenga más giros. 


En el punto central de dichas asas, si escalamos a través de las normales (Alt+S), podremos hacer que las partículas se separen, aunque sigan discurriendo y girando en torno a la trayectoria.

Esferas de aguas subiendo por la curva.

En las Propiedades de partículas del emisor, podemos controlar el número de partículas, la duración y la velocidad:

  • Cantidad: como su nombre indica, es el número de partículas (metabolas en nuestro caso) que se emitirán.
  • Fotograma inicio y fin: es el segmento en el que se generarán las partículas. Si en inicio se indica un número negativo, aparecerán generadas en el fotograma 1. En fin se indica el fotograma en el que dejarán de emitirse. Si quieres que se muestren todo el tiempo, procura que tenga tantos fotogramas como la Línea del tiempo.
  • Vida: es lo que duran las partículas pero, en este caso, es su velocidad. Las partículas intentarán recorrer toda la curva en lo que dure su vida. Si su vida es corta y/o la curva es larga, acelerarán para compensar. Para frenarlas, auméntales la vida.
  • Aleatorizar vida: asigna la variabidad en la vida de las partículas para que no todas duren lo mismo. En este caso, resulta que no todas vayan igual de rápido. 

Alterar la resolución de la metabola.

En Propiedades de datos de la metabola puedes ajustar la resolución. Cuanto mayor sea, más rudimentaria se verá.


 

Entradas relacionadas

Comentarios