Manual de Blender parte x cuerpos blandos y fluidos

cuerpos blandos y fluidos
.El sistema Softbody (cuerpos blandos) de Blender permite que los vértices se muevan basándose en las leyes de la física. Esto significa que pueden ser configurados para reaccionar a la gravedad y al viento. Los objetos de Blender pueden ser configurados como cuerpos blandos. En la versión 2.37 únicamente están implementados los objetos Mesh y lattice.

El sistema Softbody está diseñado principalmente para mejorar los sistemas de animación, incluyendo la animación de personajes. Efectos como la piel flexible u ondulante son ahora muy fáciles de lograr.

En los archivos demo de la versión 2.37 (4 Mb) pueden encontrarse dos ejemplos de cuerpos blandos, softbody_basics, blend y wind_soft, blend (http://download.blender.org/demo/test/test237a.zip).
nota: añadir algo sobre fluidos en estra intro
capítulos.

  • cuerpos blandos.
  • simulación de fluidos

cuerpos blandos.
las bases.

Hay dos métodos principales para controlar el efecto de cuerpo blando:
goal (objetivo) – Goal actúa como una etiqueta en un conjunto de vértices seleccionados, controlando cuanto efecto tiene el cuerpo blando en ellos.

Con goal activo al máximo (1.0), el objeto actuara como cualquier objeto animado normal (sin efecto de cuerpo blando). Ajustando goal a 0.0, el objeto es influido únicamente por las leyes de la física. Ajustando los valores de goal entre 0.0 y 1.0, se puede combinar entre tener un objeto al que sólo afecta el sistema de animación, y tenerlo únicamente afectado por el efecto de cuerpo blando.

Goal sirve también como memoria, para asegurarnos de que los objetos blandos no se deforman demasiado, acabando en la forma animada no blanda.

Utilizando el sistema de pesos de vertex group (grupo de vértices), puede definirse un peso goal por vértice. Para hacer que esto parezca más natural, pueden definirse fuerzas elásticas para controlar que distancia pueden alejarse los vértices de su posición original.
springs (fuerza de retorno a la posición original) – Edge Spring stifness (rigidez de la arista) define cuanto intentan las aristas mantener su tamaño original. Por ejemplo, añadiendo aristas diagonales dentro de un cubo, lo volveremos más rígido (menos gelatinoso). Ajustando el parámetro e Stif, los objetos intentaran, en mayor o menor medida, mantener su forma original, pero continuaran ajustándose a las dinámicas.
note: cuando activamos el efecto de cuerpo blando en un objeto, será siempre simulado con antelación en el tiempo. Al movernos hacia atrás en el tiempo o saltando en pasos superiores a 9 fotogramas reiniciara el cuerpo blando a su posición original. Use el play bak de la ventana timeline (línea de tiempo) para ajustar interactivamente los efectos de cuerpo blando.

Una vez esté satisfecho con la simulación, puede hornear (bake) la simulación en un sistema de animación estático. Un cuerpo blando horneado se anima mucho más rápidamente en pantalla, y deja de depender de la simulación.
note: se recomienda hornear los cuerpos blandos al renderizar animaciones, puesto que la simulación no funciona correctamente para renderizado con Motion Blur (borrosidad de movimiento), o para renderizado por fragmentos a través de un sistema de renderizado por red.

El uso de Softbody para simulación de tela, especialmente con detección de colisión, esta todavía en fase de pruebas. El código de colisión actual necesita mejoras, planeadas para una futura versión. Para un control más preciso sobre la simulación de tela, se añadirán opciones de arista especiales en una próxima versión. Actualmente, todas las aristas tienen un efecto idéntico en el cuerpo blando.

Puesto que los vértices en los cuerpos blandos son tratados como partículas, las opciones force Fields y deflectors se aplican igualmente. Tenga en cuenta que deflection (colisiones) funciona únicamente en mallas no deformadas (sin usar hooks, armaduras, lattices, etc). Véanse las notas de la versión para más información.
interfaz.

Se puede acceder a la interfaz de Softbody mediante el panel object (f7), bajo la pestaña Softbody. Véase ajustes de Softbody.

Manual de Blender parte x cuerpos blandos y fluidos-softbodysettings.png
Ajustes de Softbody.

ajustes de Softbody.

  • enable software body (habilita cuerpo blando) – Habilita el sistema Softbody en el objeto seleccionado.
  • bake settings (opciones de horneado) – Abre las opciones de horneado. Véase ajustes de bake.
  • friction (fricción) – Controla la cantidad de fricción que tiene el objeto. Un valor alto significa que las fuerzas, por ejemplo, Gravity (gravedad) o Wind (viento), tienen más facilidad para tomar el objeto y moverlo.
  • grav – Gravedad, cantidad de fuerza en la dirección del eje Z negativo. El valor de la gravedad terrestre es aproximadamente 9.8.
  • error limit (límite de error) – Límite runge-kutta. Define el tamaño del paso durante la simulación. Valores pequeños dan una precisión mayor, pero incrementan el tiempo de cálculo.
  • Mass (masa) – Valores de masa para los vértices. Mayor masa frena el movimiento, excepto para la gravedad, donde el movimiento es fijo independientemente de la masa.
  • speed (velocidad) – Con este valor puede controlarse la temporización interna del sistema Softbody.
  • apply deform first (aplicar la deformación primero) – Aplica los cálculos de Softbody después de otras deformaciones, tales como las causadas por lattices o armaduras.
  • use goal (usar objetivo)- Usa el movimiento de animaciones para la simulación (IPO, deform, parents, etc). Goal es la posición final deseada para los vértices basada en esta animación. Cómo tratara el Softbody de adquirir este objetivo puede ser definido usando fuerzas de flexibilidad y atenuación de la oscilación.
  • goal (objetivo) – El peso objetivo por defecto para todos los vértices cuando no hay grupo de vértices asignado (vertex group). Si hay grupo de vértices asignado, este botón muestra el nombre del grupo de vértices objetivo.
  • g Stif – Rigidez del objetivo. Un valor pequeño crea una fuerza de retorno muy débil (agarre más flexible al objetivo), un valor alto crea una fuerza de retorno fuerte (agarre más rígido al objetivo).
  • g Damp – La atenuación de oscilación del objetivo. Valores altos atenúan el efecto elástico del objetivo en el cuerpo blando.
  • gmin/gmax – Cuando se pintan los valores en grupos de vértices (usando el modo weightpaint – Pintado de pesos), pueden usarse gmin y Gmax para afinar (fijar) los valores de peso. El menor peso de vértice (azul) será gmin, el valor más alto (rojo) será Gmax.
  • use Edges (usar aristas) – Las aristas de un objeto malla (si las hay, comprobar en editing->Mesh panel) pueden usarse también como elementos flexibles con fuerza de retorno.
  • Stif quads (rectángulos rígidos) – Para caras rectangulares, las aristas diagonales se usan con fuerza de retorno. Esto evita que las caras se aplasten por completo.
  • e Stif – Rigidez de las aristas (cuanto se esturan las aristas). Un valor bajo significa fuerzas de retorno muy débiles (material muy elástico), un valor alto es una gran fuerza de retorno (material más rígido).
  • e Damp – Atenuación de la oscilación de las aristas. Valores altos atenúan el efecto e Stif.

Manual de Blender parte x cuerpos blandos y fluidos-softbodybakesettings.png
Ajustes de bake.

ajustes de bake.

  • start/end (principio/fin) – Configura el rango del cuerpo blando a ser horneado.
  • interval (intervalo) – Indica el número de fotogramas entre cada paso de horneado (la resolución del resultado horneado). Las posiciones intermedias serán calculadas usando los pasos como fotogramas clave, con interpolación b Spline.
  • bake (hornear) – Inicia el proceso de horneado. Dependiendo de la complejidad, esto puede demorar un poco. Puede pulsarse Esc para detener el horneado. Una vez horneado, este botón cambia a un botón free bake (liberar el horneado). Debe liberarse el resultado horneado para modificar los ajustes de cuerpo blando.

ejemplo.

Nuestro ejemplo mostrara un modo de hacer una simple bandera ondeando al viento.

Cre un plano en vista frontal y subdividirlo 3 veces. Vaya a los botones de editing f9 y active Subsurf. Coloco Subsurf level a 2 para mejores resultados. Presione set smooth.

Crearemos ahora dos puntos de sujeción en nuestra bandera en la esquina superior e inferior de nuestro plano.

  • cree un nuevo vertex group, y ajuste weight a 0. Seleccione todos los vértices, y presione assing.
  • ahora, seleccione la esquina superior e inferior de un lado de la bandera. Coloco weight a 1.0, y presione assing nuevamente. Esto hará que estos vértices se mantengan dónde están durante la simulación de Softbody. En modo weight Paint debería verse algo como en ejemplo de configuración de pesos.
  • ahora, salga de modo edit, y vaya al panel Softbody en los botones object f7. Haga clic en enable software body. Incremente grav a 9.8. Active el botón use goal. Haga clic en el pequeño botón junto a use goal y elija el nombre del vertex group a usar como objetivo, en este caso, la única opción debería ser el nombre por defecto group. Ahora ajuste la rigidez de arista e Stif a 0.9, coloco Mass a 0.5, friction a 0.14 y speed a 2.
  • ahora, puede presionar alt-a para ver la bandera reaccionando a la gravedad.

Manual de Blender parte x cuerpos blandos y fluidos-softbodyexampleweightsetting.png
Ejemplo de configuración de pesos.

Ahora añadiremos algo de viento a la simulación.

  • añada un objeto empty a la escena donde estará situada la fuente de viento. Seleccione la pestaña particle interaction y active el botón Wind. Ajuste strength a 1.
  • ahora rote y mueva el empty de tal modo que el eje Z apunte hacia la bandera. Véase ejemplo de ipo de configuración de viento.

un consejo: {{{2}}}

  • ahora puede presionar alt-a para ver el la bandera reaccionando al viento.
  • añadir una curva ipo para simular la fuerza cambiante del viento añadirá más realismo a la animación. Véase ejemplo de ipo de fuerza del viento.

Manual de Blender parte x cuerpos blandos y fluidos-softbodyexamplewindsetup.png
Ejemplo de configuración de viento.

Manual de Blender parte x cuerpos blandos y fluidos-softbodyexamplewindstrengthipo.png
Ejemplo de ipo de fuerza del viento.
simulación de fluidos.

El siguiente capítulo describe cómo animar líquidos usando el simulador de fluidos integrado en Blender a partir de la versión 2.40.

Manual de Blender parte x cuerpos blandos y fluidos-fluidsim-example1.jpg
Ejemplo de animación de una presa rompiéndose.
visión general del flujo de trabajo

  • al modelar una escena con Blender, ciertos objetos pueden ser marcados para participar en la simulación de fluidos, por ejemplo, como fluido, o cómo obstáculo. La caja envolvente de otro objeto será usada para definir una región con forma de caja para simular el contenedor del fluido.
  • los parámetros globales de la simulación tales como la viscosidad y gravedad pueden ser establecidos para este objeto dominio.
  • utilizando el botón bake (hornear), la geometría y los ajustes son exportados al simulador y la simulación de fluidos se lleva a cabo, generando una malla de superficie junto con una vista previa para cada fotograma de la animación, y guardándolos en disco.
  • la superficie del fluido apropiada para cada fotograma es cargada desde disco y mostrada o renderizada en Blender.

las dos imágenes encima y debajo de este párrafo son un ejemplo de animaciones de fluidos creadas con el simulador Elbem en Blender (y renderizadas usando Yafray).

Manual de Blender parte x cuerpos blandos y fluidos-fluidsim-example2.jpg
Otra animación de ejemplo de una gota cayendo.
explicación de los ajustes de GUI.

Manual de Blender parte x cuerpos blandos y fluidos-12.jpg
Volcado de pantalla de la GUI actual para un objeto dominio. Después de habilitar la simulación de fluidos para un objeto, puede escogerse el tipo (dominio, fluido, obstáculo), dando más ajustes para cada tipo.

Después de habilitar la simulación de fluidos para un objeto malla, están disponibles los siguientes tipos de objeto:

  • domain (dominio): la caja envolvente de este objeto será el receptáculo de la simulación. Note que la forma del objeto no importa (por lo que normalmente no habrá motivo para usar otra forma que una caja). Si necesita obstáculos u otros receptáculos que no sean una caja, debe insertar objetos obstáculo adicionales. Actualmente debería haber un único objeto dominio de simulación de fluidos. Las longitudes de los lados de la caja envolvente pueden ser diferentes.
    • resolution (resolución): la resolución a la que se realiza la simulación de fluidos. Es probablemente el parámetro más importante de la simulación puesto que determina la cantidad de detalle en el fluido, el uso de disco y memoria, así como el tiempo de cálculo. Note que la cantidad de memoria necesaria se incrementa rápidamente: una resolución de 32 requiere 5 Mb, 64 requiere 40 Mb, mientras 128 ya necesita más de 250 Mb. Actualmente la resolución esta limitada a 200 (850 Mb), para evitar el colapso de Blender debido al uso masivo de memoria. Si el dominio no es cúbico, la resolución se tomara para el lado más largo. Las resoluciones a lo largo de los otros lados serán reducidas de acuerdo a sus longitudes.
    • preview-res.: es la resolución a la que se generaran las mallas de superficie de previsualización. Por lo tanto, no influencia la simulación actual, e incluso si no se visualiza nada en la previsualización, podría haber una fina superficie de fluido que no puede ser resuelta en la previsualización.
    • start time (tiempo de inicio): momento en la simulación (en segundos) del primer fotograma de Blender. Así, esta opción hace que la animación de Blender se inicie más tarde en la simulación.
    • end time (tiempo final): momento en la simulación del último fotograma de Blender.
    • Disp.-qual.: cómo mostrar una simulación horneada en la GUI Blender (primer menú desplegable) y en el render (segundo): geometría original, malla de previsualización o malla final. Cuando no se encuentran datos horneados, se mostrara la malla original por defecto.
    • directorio bake (hornear): directorio y prefijo de archivo con los que almacenar las mallas de superficie horneadas. Es similar a los ajustes de salida de render, sólo que la selección de archivo es un poco especial: al seleccionar cualquiera de las superficies de malla previamente generadas (como untitled_obcube_fluidosurface_final_0132.bobj, gz), el prefijo será establecido automáticamente (untitled_obcube_ en este ejemplo). Así la simulación puede realizarse varias veces con ajustes distintos, y permite cambios rápidos entre los diferentes ajustes de los datos de superficie.
    • botón bake: lleva a cabo la simulación de fluidos actual. La GUI de Blender se congelara y mostrara el fotograma simulado actualmente. Presionando escape se abortara la simulación. Seguidamente dos.bobj, (*.gz) aparecerán en el directorio seleccionado para cada fotograma.
    • botón advanced (avanzado): haciendo clic en este botón se mostraran más opciones avanzadas, que normalmente no deben modificarse con mucha frecuencia.
    • Gravity Vector (Vector de gravedad): fuerza y dirección de la aceleración de gravedad. Actualmente, la componente principal debería ir a lo largo del eje Z negativo [m/s2]. Actualmente no debería ser cero (por lo menos un número pequeño).
    • viscosity (viscosidad): viscosidad, es decir grosor del fluido. Puede bien introducirse un valor directamente o usar uno de los pre-ajustes. Para entrada manual, el valor se especifica en punto flotante, que debería ser alrededor de 1.0 con exponente negativo. Ello simplifica la entrada de números muy pequeños, puesto que la viscosidad de, por ejemplo, el agua, es alrededor de 10 a la menos seis.
    • real-world size (tamaño mundo real): tamaño del objeto dominio en el mundo real en metros. Si desea crear un vaso de agua, ello podría ser 0.2 metros, mientras que para una simple gota sería más adecuando un centímetro (así 0.01m). El tamaño establecido aquí es para el lado más largo de la caja dominio envolvente.
    • gridlevel (nivel de rejilla): cuantos niveles de rejilla adaptativa a ser usados durante la simulación. Estableciéndolo a -1 se realizara la selección automática.
    • compressibillity (compresibilidad): si tiene problemas con grandes regiones de fluido estático a alta resolución, reducir este número puede ayudar (note que ello aumentara el tiempo de cómputo).

  • fluid (fluido): todas las regiones de este objeto que están dentro de la caja dominio envolvente se usaran como fluido actual en la simulación. Si coloca más de un objeto fluido dentro del dominio, no deberían interseccionar. Asegúrese también de que las normales de superficie están apuntando hacia fuera. A diferencia de los objetos dominio, la geometría de la malla actual es usada para los objetos fluido.
    • initial velocity (velocidad inicial): velocidad del fluido al inicio de la simulación en metros por segundo.

  • obstacle (obstáculo): este objeto se usara como obstáculo en la simulación. Como con los objetos fluido, la geometría de malla actual es utilizada para los obstáculos.
    • sin ajustes actualmente.

  • inflow (flujo de entrada): este objeto añadirá fluido a la simulación (piense en un grifo de agua).
    • initial velocity (velocidad inicial): velocidad del fluido que se crea dentro del objeto.

  • outflow (flujo de salida): cualquier fluido que entra en la región de este objeto será borrado (piense en un desagüe). Puede ser útil en combinación con el flujo de entrada para evitar el desbordamiento del objeto dominio.
    • sin ajustes aquí.

información general de fondo.

La animación de fluidos puede tomar mucho tiempo. Cuanto mejor comprendamos cómo funciona, más fácil resultara estimar cómo serán los resultados. El algoritmo utilizado en este proyecto es el lattice boltzmann method (LBM), hay otras aproximaciones, como los solucionadores navier-stokes (ns) y los métodos smoothed particle hydrodynamics (SPH). Puede asumirse el LBM como a medio camino entre los otros dos. En general es muy duro para los ordenadores simular correctamente incluso un tanque de agua de 1 metro. Para simular una ola rompiendo contra una ciudad, se necesitaría probablemente uno de los super ordenadores más caros que pudiéramos conseguir, y aún y así podría no funcionar adecuadamente (independientemente de cuál de los 3 algoritmos anteriores usáramos). Pero de forma similar a lo que los cineastas han estado haciendo en películas analógicas durante años, podemos pretender tener una ola en una ciudad construyendo un modelo menor, poner una ola en el modelo, y esperar que nadie se de cuenta de la diferencia entre una ola de 100m y una de 1m.

Para el solucionador LBM, las siguientes cosas harán que la simulación sea más dura de calcular:

  • dominios largos.
  • larga duración.
  • viscosidades bajas.
  • altas velocidades

la viscosidad del agua es ya realmente baja, por lo que especialmente para resoluciones bajas, la turbulencia del agua no puede ser capturada correctamente. Si nos fijamos atentamente, la mayoría de las simulaciones de fluidos en gráficos por ordenador no parecen agua real todavía hasta ahora.

En general, no confíe demasiado en los ajustes físicos (tal como tamaño físico del dominio, o duración de la animación en segundos). Más bien intente conseguir el movimiento general correcto con una resolución baja, y luego incremente la resolución tanto como sea posible o deseable.
notas/faq/problemas conocidos.

  • no se sorprenda, pero se encontrara con un amplio abanico de archivos de malla (.bobj, gz) después de la simulación, básicamente 2 por fotograma. Contienen el resultado de la simulación, así que, los necesitara. Actualmente estos archivos no serán borrados automáticamente, por lo que es una buena idea crear una carpeta dedicada a almacenar los resultados de la simulación. Hacer una simulación de fluidos es similar a hacer clic en el botón Anim: debe preocuparse de organizar las mallas de superficie de fluido usted mismo. Si quiere dejar de utilizar la simulación de fluidos puede simplemente eliminar todos los archivos *fluid*.bobj, (*.gz).
  • si la configuración parece no funcionar asegúrese de que todas las normales son correctas (en modo edición, seleccione todo, y recalcule las normales a un tiempo).
  • antes de ejecutar una simulación a alta resolución que puede tomar horas, repase la animación entera mediante ejecuciones a resoluciones más bajas.
  • en los objetos dominio sólo se utiliza la caja envolvente, pero los objetos fluido y obstáculo pueden ser mallas con geometrías complejas. Si son muy finos podrían no aparecer, sin embargo, si la resolución elegida es demasiado ruda para resolverlos (incrementarla podría solucionar el problema).
  • actualmente hay un problema con la simulación con gravedad cero. Simplemente seleccione una unidad de gravedad hasta que se solucione.
  • note que todos los parámetros animados u objetos no son tomados en consideración durante la simulación. Sólo se utiliza la configuración inicial en el fotograma 1, pero será posible en futuras versiones.
  • Blender se congela después de pulsar bake: presionando Esc vuelve a hacerlo funcionar, después de un lapso de tiempo (ello puede suceder si la resolución es muy grande y la memoria es intercambiada en disco, haciéndolo todo horriblemente lento. Reducir la resolución debería ayudar en este caso.
  • Blender se cuelga al presionar bake: esto puede pasar si la resolución es realmente alta y se usan más de 2 Gb, causando el colapso de Blender. Reducir la resolución debería ayudar también.
  • las mallas deberían ser cerradas, así que, si alguna parte de, por ejemplo, un fluido no son inicializadas como fluido en la simulación, asegúrese de que todas las partes de vértices conectados son mallas cerradas. Por desgracia, la malla Suzanne (mono) de Blender no es una malla cerrada (los ojos están separados).
  • si experimenta problemas, o algo no funciona como usted piensa que debería funcionar, envíe el archivo (*.blend) y una descripción del problema a Nils arroba thuerey punto de.

Manual de Blender parte x cuerpos blandos y fluidos-fluidsim-example3.jpg
Otro ejemplo de simulación de fluidos creado con Blender y Yafray.
reconocimientos.

La integración del simulador de fluidos fue hecha como un proyecto google summer-of-code.

Más información acerca del solucionador puede encontrarse en www.ntoken.com
Estas animaciones fueron creadas con el solucionador antes de su integración en Blender: rejillas adaptativas, animaciones interactivas
Gracias a Chris want por organizar los proyectos Blender-soc, y a Jonathan merrit por mentorizarlo. Y por supuesto gracias a google por iniciar todo esto.

Las actualizaciones del progreso del soc se publicaron aquí: soc-blenderfluid-blog en planetsoc.

El solucionador en sí fue desarrollado con ayuda y supervisión de las siguientes personas: u. Ruede, t. Pohl, c. Koerner, m. Thies, m. Oechsner y t. Hofmann del department of computer Science 10 (system simulation, ls) en erlangen, Alemania.

Nota: se ha corregido alguna traducción para adaptarla al castellano, gracias a por ofrecernos está traducción.

Este tutorial esta extraído de en su sitio web podrás encontrar este mismo tutorial traducido a más idiomas, Blender es un programa gratuito.

Miniaturas adjuntas
Manual de Blender parte x cuerpos blandos y fluidos-softbodysettings.png   Manual de Blender parte x cuerpos blandos y fluidos-softbodybakesettings.png   Manual de Blender parte x cuerpos blandos y fluidos-softbodyexamplewindsetup.png   Manual de Blender parte x cuerpos blandos y fluidos-softbodyexamplewindstrengthipo.png   Manual de Blender parte x cuerpos blandos y fluidos-fluidsim-example1.jpg  

Manual de Blender parte x cuerpos blandos y fluidos-fluidsim-example2.jpg   Manual de Blender parte x cuerpos blandos y fluidos-12.jpg   Manual de Blender parte x cuerpos blandos y fluidos-fluidsim-example3.jpg  

Imágenes adjuntadas
Manual de Blender parte x cuerpos blandos y fluidos-softbodyexampleweightsetting.png 

Ver más sobre el tema y los comentarios en el foro