Obi Fluid 3 para Unity: Novedades

Obi Fluid 3.0 ya está disponible y puedes visitarlo en el Asset Store aqui. Esta nueva versión es compatible con Obi Cloth y Obi Rope version 3 y hemos añadido unas cuantas mejoras y características nuevas.

Nota: La mayoría de los videos e imágenes de la entrada están en 2D para ilustrar mejor cada uno de los puntos, pero son igualmente aplicables a 3D.

 

Simplicidad y Robustez

El set te parámetros utilizado para los materiales ha sido reducido y simplificado. Tipos de material distintos se han añadido para fluidos y materiales granulares, de forma que los parámetros específicos para cada uno no polucionan los demás materiales.

Ahora un único parámetro (llamado “resolution“) controla la cantidad de partículas que forman tu fluido o material granular.

Manteniendo los demás parámetros constantes, tu fluido se comportará de la misma manera a diferentes resoluciones y solo el nivel de detalle cambiará. El radio y masa de las partículas se calcula automaticamente a patir de este parámetro, así que ya no tendrás que perder tiempo modificando los demás parámetros físicos cada vez que quieras cambiar el tamaño de tus partículas.

Aquí podéis ver el mismo fluido a resolución 1 y 3, de izquierda a derecha. Ningún otro parámetro excepto la resolutión ha cambiado, así que el comportamiento del fluido es exáctamente el mismo para ambos.

Además, todos los parámetros de fluido se comprtan de la misma manera en 2D y 3D. Simplemente pasas el solver de modo 2D a modo 3D o viceversa y obtienes el mismo comportamiento de fluido pero en una dimensión más o menos 🙂

Fluidos Multifase

Aunque 2.x ya soportaba fluidos multifase (más o menos…), ahora 3.x puede manejar ratios de densidad mayores sin dejar huecos entre los fluidos y sin inestabilidades.

En el siguiente video hay cuando fluidos diferentes, cada uno con su densidad, viscosidad y tensión superficial propia con un total de 10.000 partículas. El ratio de densidad entre el fluido naranja y el blanco es 1:10. Puedes ver como los fluidos más densos se hunden rápidamente y como las burbujas de fluido menos ligero suben a la superficie. Podemos visualizarlo a tiempo real (50 fps) en un Core i7 usando el paso de tiempo por defecto en Unity (0.02) y 7 iteraciones de densidad por paso.

Render Mejorado

Se ha mejorado y simplificado el shading de fluidos en espacio de pantalla. Se ha añadido soporte para DX11 y Unity 5.5 y ahora puedes escribir tus propios shaders para el fuido de una manera fácil. Aquí hay dos shaders simples hechos con la plantilla incluida en la versión 3.0:

 

 

 

 

Shader cartoon en una linea:

fo.color = lerp(inner_color, outer_color, step (thickness, 0.13f)) * tex2D(_Foam, i.uv);

 

 

 

 

 

Shader Phong difuso

(No mostraremos el código aquí puesto que hay más elementos que participan aquí. La posición de fragmentos en espacio de cámara y espacio de mundo, la normal y los vectores de vista los aporta la plantilla para el shader).

 

Generación de Espuma

El nuevo componente ObiFoamGenerator puede emitir particulas shuriken en zonas de alta vorticidad que luego serán advectadas por el campo de velocidad del fluido. Esto puede incrementar el realismo del fluido inmensamente, especialmente en simulaciones de baja resolución, creando interesantes patrones de flujo dentro del fluido visible. Funciona tanto en 2D como en 3D y el renderizado de la espuma toma la transmitancia del fluido en cuenta al usar el shader de fluido dieléctrico incluido.

Ya que las partículas de espuma se generan usando un emisor de partículas shuriken normal y corriente, puedes controlar su color, tamaño, material, estelas, etc, igual que en cualquier sistema de partículas estándar.

Rendimiento Mejorado

La estructura de particionamiento espacial usada para detectar vecinos cercanos se actualiza de forma incremental de frame a frame en en de ser construida desde cero. Esto permite a Obi aprovechar la coherencia temporal y ha bajado el tiempo medio utilizado en calcular los vecinos de cada partícula en casi el 80%.

También, Obi Fluid 3.0 hereda la nueva arquitectura basada en tareas introducida en Obi Cloth 3.0 y las restricciones ahora procesan cuatro partículas vecinas a la vez gracias al uso de instrucciones SIMD.

 

 

Estamos muy contentos con esta nueva versión y creemos que aportará un sistema de fluidos basado en partículas rápido, versátil, robusto y fácil de usar a Unity.

¡Seguid atentos!

 

El equipo VM

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *