Fuego y humo con Pyro

En esta página encontrará una breve introducción al sistema de simulación Pyro, que permite calcular niebla, nubes, humo, fuego y explosiones. Para más información sobre todos los ajustes de la etiqueta Emisor Pyro, la etiqueta Combustible Pyro, el objeto Salida Pyro o los ajustes de Escena Pyro vinculados a ellos, consulta las respectivas páginas de ayuda.
Para gestionar diferentes ajustes de Simulación dentro de una escena, utilice el Objeto Escena de Simulación.
Por ejemplo, para renderizar una simulación Pyro guardada como secuencia .vdb, puede utilizar el objeto Redshift Volume junto con el material Redshift Pyro Volume.

Aquí se tratan los siguientes temas:


¿Cómo funciona una simulación de fluidos?

En primer lugar, puede sorprender que estemos hablando de una simulación de fluidos. De hecho, las mismas leyes físicas se aplican a los gases y a los líquidos, por lo que se pueden utilizar métodos de cálculo similares para los líquidos y también para los movimientos de los gases. En Pyro, sin embargo, la atención se centra claramente en las simulaciones de gas debido a los parámetros proporcionados.

En este tipo de simulación, primero se necesita un volumen en el que se crea el gas. El gas recibe propiedades como la densidad, la masa, la velocidad y la temperatura. El entorno del Emisor de Gas también adquiere propiedades, como la temperatura, la presión o la dirección y fuerza de la gravedad. Con estos datos clave, la simulación puede predecir el movimiento de los gases y los sólidos en suspensión fotograma a fotograma. Por eso, al igual que en otras simulaciones, es importante que no se salte atrás y adelante en el tiempo a voluntad, sino que la simulación pueda ejecutarse fotograma a fotograma desde el principio. Sin embargo, la simulación también puede guardarse automáticamente en la memoria durante la reproducción, lo que no sólo acelera la repetición, sino que también permite la renderización con Redshift.

Para poder calcular la simulación lo más rápidamente posible, el espacio (o el aire alrededor del Emisor) se divide en cubos definidos, los llamados Voxels. Puede que ya conozca este principio del sistema OpenVDB del objeto Volume Creator. El tamaño de estos vóxeles determina la escala de la simulación, así como su densidad de detalle y los requisitos de memoria. Cuanto más pequeños son los vóxeles, más detallados y precisos pueden calcularse el fuego o el humo, pero también se requiere más memoria y potencia de cálculo, lo que debe tenerse en cuenta, especialmente para volúmenes de simulación mayores. Por lo tanto, elija siempre un tamaño de vóxel ajustado.

Dentro de cada voxel, se comprueba si hay una densidad de gas significativa, por ejemplo. Los vóxeles se comunican con sus vecinos, por ejemplo, para poder crear nuevos vóxeles en la vecindad en caso de que se produzca una explosión de propagación. Dado que cada cubo de espacio de vóxel requiere una cantidad correspondiente de memoria y potencia de cálculo, los vóxeles se generan sólo donde la simulación lo considera necesario. Esto tiene la ventaja de que no tenemos que definir un volumen de simulación nosotros mismos, sino que la propia simulación determina dónde se necesitan los vóxeles.

Para la simulación real, cada vóxel se subdivide de nuevo en cubos espaciales más pequeños para poder calcular y representar los flujos y vórtices característicos dentro de una llama o una columna de humo. De este modo, ya obtenemos una vista previa significativa de la simulación en las vistas sombreadas del editor al reproducir la simulación.

Si nos gusta la simulación, se puede almacenar en la memoria o incluso guardar como un archivo de caché. De este modo, la simulación puede reutilizarse en cualquier escena sin renovar el esfuerzo computacional, o incluso transferirse a otros programas 3D con los que sea posible la representación de los datos de simulación en formato vdb.
Por último, los datos de la simulación pueden representarse como una imagen o animación.


Definir el emisor

Como se ha descrito anteriormente, la simulación requiere un volumen en el que se genere el gas. Por ejemplo, piense en esta zona como en la punta de una cerilla. Allí, la fricción genera calor, que luego enciende el combustible. Se produce una reacción con el oxígeno y la madera. Se genera calor adicional y, por ejemplo, hollín, que se eleva como una columna de humo.

La tarea del Emisor consiste en describir en primer lugar el lugar donde se produce dicha reacción (cabeza de un partido). Además, hay que describir la densidad energética del lugar, por ejemplo, cuánto combustible hay allí, cuánto humo y cuánto calor debe generarse. La descripción del combustible es opcional. Por ejemplo, también podemos describir ya la llama de una vela como un Emisor si sólo definimos la temperatura en la mecha y la cantidad de hollín ascendente. En la práctica, esto es lo que parece:

Paso 1:

Primero, crea o selecciona el objeto que será tu Emisor de fuego o humo. Este objeto también puede ocultarse posteriormente y, por lo tanto, no tiene que ser necesariamente una parte visible de sus modelos. A menudo, por ejemplo, un simple objeto de base esférica puede utilizarse como Emisor. Sólo hay que asegurarse de que la escala sea razonable, es decir, que tenga unas dimensiones realistas.
En caso contrario, se puede utilizar cualquier objeto poligonal, objetos primitivos paramétricos o splines, pero también los Voxels de un Generador de Volumen.

Paso 2:

Asigna una etiqueta Pyro Emisor al objeto, por ejemplo, a través del menú Etiquetas de la categoría Simulación del Gestor de Objetos. Con ella puedes definir, entre otras cosas, el número y tipo de componentes Pyro que deben crearse. La etiqueta Pyro Fuel también se puede encontrar en el mismo menú, pero en realidad es idéntica a la etiqueta Pyro Emitter. En la etiqueta Pyro Fuel, los ajustes por defecto sólo están diseñados para simular una explosión, mientras que en la etiqueta Pyro Emitter, las llamas y el humo se crean por defecto. Sin embargo, la etiqueta Pyro Emisor también puede reconfigurarse para ser una etiqueta Pyro Combustible y entonces generar explosiones también. Del mismo modo, la etiqueta Pyro Fuel también puede generar humo y llamas si las opciones correspondientes están activadas allí.

Nota:Para todas las splines y para los objetos poligonales en los que no se muestra un volumen cerrado (por ejemplo, objetos con agujeros o un simple plano), la opción Emisor de superficie debe estar activada en la etiqueta Emisor Pyro. El Emisor de superficie garantiza automáticamente que todos los orificios poligonales de la geometría estén cerrados para los cálculos del Emisor. El ajuste Espesar también se puede utilizar para crear un volumen para dichos objetos en el que la simulación Pyro puede generar gas caliente o humo, por ejemplo.

Paso 3:

Junto con la etiqueta Pyro Emisor, se crea automáticamente un objeto Pyro Salida, en el que posteriormente podrás seleccionar, por ejemplo, las propiedades de la simulación que quieres almacenar como caché en la RAM o como archivos. Esto es necesario para renderizar la simulación con Redshift, pero también se puede utilizar para acelerar el renderizado en el editor o para pasar la simulación a otros programas.

Nota:Si el objeto Pyro Output ha sido borrado accidentalmente, puede ser creado de nuevo utilizando el botón correspondiente en los ajustes Pyro de las Preferencias del Proyecto.

Paso 4:

En el objeto Pyro Output encontrarás un enlace a la configuración de la simulación Pyro en la pestaña Pyro Scene. Allí encontrará todos los ajustes importantes de la simulación, como el Tamaño de vóxel, que ya se mencionó al principio. La etiqueta Emisor Pyro sólo es responsable de la configuración del Emisor y de la Escena Pyro vinculada en el objeto Salida Pyro para el cálculo de la simulación real.

Paso 5:

Si ahora ejecuta la animación fotograma a fotograma pulsando la función Reproducir hacia delante, ya verá la generación de fuego y humo en su objeto. Tenga en cuenta que el comportamiento y el nivel de detalle de la simulación (así como sus requisitos de memoria) dependen en gran medida del Tamaño de vóxel definido.


Interacción de los componentes Pyro

Para mayor claridad, las siguientes imágenes muestran una vez más la relación entre la etiqueta Emisor Pyro, el objeto Salida Pyro y los ajustes de simulación Pyro enlazados en él, que ya se ha descrito anteriormente. La siguiente figura muestra el caso por defecto. A un objeto (aquí un cubo) se le asignó la etiqueta Pyro Emisor. Esto crea un objeto Pyro Output en la escena. Aquí encontrarás la pestaña Escena Pyro además de las distintas opciones de caché. Por defecto, los ajustes de simulación de Pyro están enlazados ahí, cuyos valores se toman de las Preferencias del Proyecto de Cinema 4D.


A la izquierda, se pueden ver los ajustes de simulación en el objeto Pyro Output en el Gestor de Atributos. Por defecto, sus valores son idénticos a los de la categoría Simulación/Pyro de las Preferencias del proyecto (véase la parte derecha de la imagen).

Una segunda opción es llamar a un objeto Escena de Simulación en el menú Simular de Cinema 4D. Esto se puede arrastrar y soltar en el Campo Escena de la configuración de Escena Pyro en el objeto Salida Pyro. Esto utilizará los ajustes de simulación de Pyro disponibles en el objeto Escena de simulación. Los valores de Pyro de las Preferencias del Proyecto ya no desempeñan ningún papel en esta simulación.

Dado que puede haber cualquier número de objetos Escena de Simulación en la escena, permiten la gestión de diferentes ajustes de simulación que se pueden asignar fácilmente al objeto Salida Pyro mediante arrastrar y soltar.


Los ajustes de simulación Pyro de un objeto Escena de Simulación también pueden usarse como Escena Pyro en el objeto Salida Pyro.

Lo que falta ahora es un enlace entre los ajustes de simulación Pyro y las etiquetas Pyro Emisor que deberían acceder a ellos. Para ello se dispone de un Campo Elemento en la pestaña Escena del objeto Escena de simulación, así como en las Preferencias del proyecto. Todas las etiquetas Pyro Emisor que deban utilizar estos ajustes de simulación deben arrastrarse y soltarse allí. La siguiente imagen lo ilustra a modo de ejemplo.

Nota:Si sólo quieres trabajar con las Preferencias del Proyecto como fuente para los ajustes de simulación Pyro, este paso puede omitirse porque las nuevas etiquetas Pyro Emisor se introducen automáticamente en la lista de Elementos.

En la misma área, por cierto, también encontrarás una lista de Fuerzas donde puedes vincular los objetos Fuerza que deben afectar a la simulación Pyro (ver también la siguiente imagen).
Por último, también puedes leer directamente del nombre del objeto Pyro Output qué ajustes de simulación se han vinculado en él. Con un enlace de Escena Pyro a las Preferencias del Proyecto, el nombre adjunto aparece allí (Por defecto). Si se ha utilizado un objeto Escena de simulación, su nombre aparece como adjunto al objeto Salida Pyro. Esto también puede verse en la siguiente imagen.


Cuando se utilizan objetos de Escena de Simulación como fuente para los ajustes de simulación de Pyro, hay que asegurarse de que las correspondientes etiquetas de Emisor Pyro están enlazadas en la lista de elementos. Si sólo se utilizan las Preferencias del Proyecto, esto ocurrirá automáticamente en su lista de Elementos.


Ajustar el tamaño de los vóxeles

Ahora hay dos elementos iniciales importantes que debe ajustar. En los ajustes de Pyro Scene del objeto Pyro Output encontrarás el ajuste Voxel Size. Define la precisión con la que la simulación subdividirá el espacio. Por lo tanto, un tamaño de vóxel pequeño conduce automáticamente a un cálculo más preciso y a una simulación más detallada. Al mismo tiempo, sin embargo, los requisitos informáticos y de memoria de la simulación aumentan en consecuencia. Por lo tanto, es necesario ajustar este valor al tamaño de la simulación. Al principio, el tamaño del objeto al que ha asignado la etiqueta Pyro Emisor puede servir como valor de referencia. Por lo tanto, en cualquier caso, también tiene sentido prestar atención a los tamaños realistas en los ajustes de Escena Pyro en el objeto Salida Pyro. La siguiente figura muestra la influencia del tamaño de vóxel en el resultado de la simulación.


En este ejemplo, se utiliza un anillo deformado como piroemisor. Las imágenes superiores muestran el resultado de la simulación tras 40 fotogramas de animación. A continuación se muestra un primer plano del anillo en blanco para poder examinar la distribución de los gases recién formados en el volumen del objeto.

En la imagen superior, de izquierda a derecha, se utilizaron tamaños de vóxel de 5 cm, 1 cm y 0,1 cm. La anchura del anillo deformado, que aquí sirve de piroemisor, es de unos 20 cm. Puede verse claramente cómo la reducción del tamaño de los vóxeles conduce a un llenado más eficaz del anillo con gas y a una simulación más detallada. Al mismo tiempo, sin embargo, el tiempo de simulación aumenta considerablemente y los requisitos de memoria también se disparan.

Especialmente con objetos grandes, un tamaño de vóxel pequeño puede hacer que no se disponga de suficiente memoria. En estos casos, una de las cosas que puede ayudar es aumentar el Tamaño de Voxel para muestrear el volumen en el objeto Emisor. Esto es posible utilizando la Fidelidad de Objeto en la etiqueta Emisor Pyro. Este valor porcentual se refiere directamente al Tamaño de Voxel establecido previamente. Así que con valores de Fidelidad de Objeto por debajo del 100%, puedes reducir selectivamente el número de Voxels en el área del Pyro Emisor. Esto da lugar a un suavizado y engrosamiento de la forma del Emisor detectado y a que no se tengan en cuenta las secciones del objeto cuya sección transversal sea menor que la Fidelidad del objeto. A menudo, sin embargo, esta imprecisión puede despreciarse, sobre todo si de este modo podemos ahorrar memoria y tiempo de cálculo. La siguiente imagen también muestra un ejemplo de ello.


Esta secuencia de imágenes utiliza de nuevo el anillo deformado del último ejemplo como Emisor. Se utilizó un tamaño de vóxel de 1 cm para las tres imágenes. La única diferencia entre las imágenes es la configuración de Object Voxel. Se utilizó el 10% a la izquierda, el 50% en el centro y el 100% a la derecha....

Como puede verse en la imagen superior, una fuerte reducción de la Fidelidad del Objeto puede llevar a que todo el objeto deje de utilizarse como Piroemisor. En consecuencia, se expulsa menos humo, gas caliente o combustible. Asimismo, la distribución del gas generado puede ser más desigual, ya que sólo se llenan de gas las secciones más voluminosas del objeto. Sin embargo, la imagen también deja claro en este ejemplo que las diferencias pueden ser bastante pequeñas en algunos casos. Así, la diferencia entre los resultados de la simulación del centro y de la derecha es insignificante. Sin embargo, ahorramos muchos vóxeles en volumen.

Así que, para resumir, usa el Tamaño de Voxel de los ajustes de Escena Pyro del objeto Salida Pyro para controlar la escala de la simulación y por tanto su nivel de detalle. También le proporciona una herramienta para optimizar las necesidades de almacenamiento y la duración del cálculo. Los tamaños de vóxel más pequeños siempre implican cálculos de simulación más complejos y mayores requisitos de memoria. Se limita al 80% de la memoria disponible para simulaciones. Si, por ejemplo, hay que generar demasiados vóxeles debido a una nube o llama demasiado pequeña o demasiado grande, puede que ya no sea posible capturar todo el volumen de la nube, llama o explosión. Entonces pueden faltar zonas en estas secciones, por ejemplo, en una nube.

Puedes encontrar ejemplos y soluciones para evitar este problema en la descripción de los ajustes de simulación de Pyro. Por lo tanto, mantenga siempre el Tamaño de vóxel lo más grande posible y lo más pequeño que sea necesario.


Uso de los mapas de vértices

En el ejemplo anterior, se utilizó un objeto completo como Emisor. Sin embargo, también puede definir sólo partes de una superficie como Emisores. Esto hace posible, por ejemplo, que el fuego se extienda lentamente por una zona o que el humo permanezca sólo en determinados lugares.

La solución a esta tarea reside en el uso de mapas de vértices. Éstas pueden crearse muy rápidamente convirtiendo una selección de puntos, por ejemplo, si se llama al comando Establecer peso del punto... del menú Seleccionar y luego se define un valor de 100% en su cuadro de diálogo, por ejemplo. Sin embargo, también se puede crear un mapa de vértices directamente pintándolo.

Para hacer esto, seleccione su objeto poligonal (un objeto paramétrico debe ser convertido primero usando Convertir Objeto Primitivo) y luego seleccione la etiqueta Mapa de Vértices en la categoría Más Etiquetas del menú Etiquetas del Gestor de Objetos. La etiqueta activa automáticamente la herramienta Pintar, a la que también puede acceder desde el menú Herramientas. La intensidad puede ajustarse en la etiqueta mediante el ajuste de Opacidad. Si no, puedes leer los detalles de esta herramienta de Paint y de la propia etiqueta de Mapa de Vértices aquí.


A continuación se muestra un cubo plano en el que se ha definido un mapa de vértices. Arriba puede ver el resultado de una simulación de humo para este objeto.

Dondequiera que el valor 100% se almacene en el mapa de vértices, el efecto completo del Pyro Emisor puede tener efecto. Las áreas con menos pesos en el Mapa de Vértices generarán correspondientemente menos gas. Dondequiera que el Mapa de Vértices contenga 0%, no se generará más Pyro. Para que esto realmente funcione, aún necesitas asignar correctamente el Mapa de Vértices creado en la etiqueta Emisor Pyro. Por ejemplo, en la imagen superior, las opciones Temperatura y Combustible se han desactivado durante el día para que sólo se genere Densidad (para humo, bruma, niebla, etc.).
En la sección Densidad de los ajustes también encontrarás la opción de asignar el Mapa de Vértices como un mapa de Densidad arrastrando y soltando directamente desde el Gestor de Objetos. Como puede verse en la mitad superior de la imagen, la generación de humo se produce ahora sólo en las zonas del objeto que contienen valores superiores al 0% en el Mapa de vértices.

El mismo principio funciona de esta manera para la generación de Temperatura y Combustible en la etiqueta Pyro Emisor. Dado que un objeto puede tener múltiples mapas de vértices, el uso de mapas de vértices individuales para controlar todas estas propiedades del Emisor tampoco es un problema.


El uso de campos dentro de un mapa de vértices abre otras opciones.

Además, encontrará una opción en cada etiqueta de Mapas de vértices para utilizar también objetos de campo. Por ejemplo, en la imagen de arriba, se utilizó un campo lineal para producir una curva de ponderación perfecta a lo largo del ancho de la caja plana. En consecuencia, la simulación da como resultado una transición perfecta en la intensidad del humo simulado. El único requisito para ello es que la Densidad de Puntos en el objeto sea lo más uniforme y fina posible para poder reproducir todas las variaciones en el Mapa de Vértices o la Intensidad de Campo.

Nota:Cuando se utilizan transiciones de ponderación suave, la Fidelidad del objeto vuelve a desempeñar un papel importante. Los matices finos en el mapa de vértices sólo pueden ser detectados e implementados por el Emisor si se utilizan Vóxeles de objeto más pequeños.

Por cierto, los Mapas de Vértices también se pueden utilizar con splines si quieres variar las propiedades del Emisor a lo largo de la spline. Recuerda también que en la etiqueta Emisor Pyro es esencial activar la opción Emisor de Superficie para que haya un volumen tipo tubo alrededor de la spline que el Emisor pueda utilizar. En la siguiente sección aprenderá más sobre esto.


A la izquierda, puedes ver un primer plano de la spline utilizada como Emisor. El círculo de la parte superior marca el punto de la spline que se ponderó con el 100% en el mapa de vértices. A la izquierda, el resultado de la simulación, que produce humo y calor sólo en la parte superior de la spline.


Utilizar etiquetas de color de vértices

De forma similar al Mapa de Vértices descrito anteriormente, un objeto también puede tener múltiples etiquetas de Color de Vértices que también pueden añadirse al objeto Emisor como etiquetas en el Gestor de Objetos. Este tipo de etiqueta también puede encontrarse en el menú Etiquetas del Gestor de Objetos, en Otras etiquetas, y permite asignar valores de color RGB y valores alfa a cada punto de una geometría.

Los colores y los valores alfa pueden aplicarse individualmente con la herramienta Pintura, que se encuentra en el menú Herramientas. Para ello, puede seleccionar directamente en la herramienta Pintar a través de su modo Pintura si sólo deben pintarse valores RGB (colores), sólo valores alfa o ambos a la vez. Además, también es posible utilizar objetos Campo directamente en la etiqueta Color de vértices para crear degradados precisos o valores alfa animados aleatoriamente, por ejemplo. Para degradados de color complejos o estructuras finas, debe haber suficientes puntos en el objeto, distribuidos lo más uniformemente posible. Los valores de color y alfa sólo se pueden pintar y guardar en el objeto donde hay puntos. Los colores entre los puntos se crean por interpolación simple.

Si una etiqueta de Color de Vértice está presente en el objeto Pyro Emisor, puede ser evaluada para generar Densidad, Temperatura o Combustible, y también puede ser asignada a la transparencia de color y densidad como un Mapa de Color. La siguiente imagen muestra un ejemplo de ello.


A la izquierda puede ver la rúbrica de campos de la etiqueta Color de vértices. Allí se utilizó un Campo lineal en modo Color degradado para mezclar uniformemente los distintos colores. Además, se han ajustado los valores alfa para que la opacidad de los colores disminuya en el centro del degradado. A la derecha está el resultado después de asignar la etiqueta Color de Vértice como Mapa de Color en la etiqueta Emisor Pyro. Sólo se activaron las simulaciones de densidad y color.
Uso de la etiqueta Vertex Color como Mapa de Color en la etiqueta Pyro Emitter.
Nota:Cuando se utilizan etiquetas de Color de V értice para el Mapa de Densidad, el Mapa de Temperatura o el Mapa de Combustible, tenga en cuenta que los brillos de los colores de vértice y sus valores alfa se multiplican juntos y por lo tanto se evalúan juntos.


Utilización del emisor de superficie

Como se ha mencionado varias veces, los objetos Emisor deben ser realmente volúmenes cerrados para que la etiqueta Emisor Pyro funcione de forma fiable. Sin embargo, para objetos muy finos (más finos que el Tamaño de Voxel de los ajustes de Escena Pyro en el objeto Salida Pyro), cuando hay agujeros, para objetos de una cara, y también para splines, también puede usarse la opción Emisor Superficie en la etiqueta Emisor Pyro. Esto le permite definir una distancia alrededor de la spline o alrededor de los polígonos, lo que a su vez permite al Emisor crear Elementos Pyro allí. Esta opción ya está activa por defecto, de modo que cualquier objeto spline o poligonal puede ser utilizado directamente como Pyro Emisor.


Aquí puedes ver dos ejemplos de uso de la opción Emisor de superficie. A la izquierda se está quemando una capa simple, de la que también se han eliminado algunos polígonos. A la derecha, una simple hélice genera vapor.

Sin embargo, además de los ejemplos anteriores, esta opción también puede combinarse con objetos cerrados, por ejemplo, si desea aumentar el volumen del Emisor más allá de los límites del objeto asignado.


Aquí, se ha definido un objeto Rama (que se encuentra en el Navegador de Activos) con la etiqueta Emisor Pyro como Emisor. A la derecha, la opción de emisor de superficie se activó adicionalmente con una pequeña distancia de sólo 0,7 cm.

Como muestra la figura anterior, ampliar el Emisor con la opción Emisor de superficie también puede ayudar a hacer visible la simulación fuera de un objeto. En el caso concreto de la rama en llamas, esto significa que las llamas también parecen estar lamiendo alrededor de la rama y no sólo saliendo de la parte superior.


Interacciones con otros objetos

La simulación de humo y fuego también puede interactuar con objetos que tienen otras etiquetas de simulación. Por ejemplo, el humo puede colisionar con objetos que tengan una etiqueta de Colisión del grupo de Etiquetas de Simulación.


Aquí, dos ejemplos muestran cómo el humo interactúa con un objeto de colisión de simulación.

Del mismo modo, la simulación de humo o fuego puede interactuar con los cuerpos blandos, por ejemplo, como muestra el siguiente ejemplo. Allí, una esfera azul de cuerpo blando cae sobre el avión, alejando el humo. Las interacciones entre la simulación Pyro y, por ejemplo, una simulación de cuerpo blando o de ropa, también pueden controlarse a través del parámetro Factor de fuerza del fluido en el objeto Pyro.


Interacción entre un objeto de cuerpo blando (esfera azul) y el humo.


Interacción de varias simulaciones de Pyro

Por defecto, todas las simulaciones Pyro de tu escena interactúan entre sí. Así, si dos objetos emisores de humo están cerca uno del otro, su humo podrá mezclarse y cambiar la dinámica de la simulación. Esto también puede dar lugar a la mezcla de diferentes valores de color del humo, que se puede controlar a través de la opción Sobrescribir en la configuración de Color de las etiquetas Pyro Emisor. Si la Sobreescritura está activada para todas las etiquetas Pyro Emisor (configuración por defecto), se produce una consideración del orden de los objetos en el Gestor de Objetos. La siguiente imagen muestra un ejemplo de ello.


Diferentes resultados al mezclar colores de distinta densidad. En el centro, la opción Sobrescribir estaba activada; a la derecha, desactivada.

La imagen superior muestra el punto de partida de la escena a la izquierda. Se colocaron tres cubos separados, cada uno con una longitud de arista de 20 cm, uno al lado del otro de forma que los cubos vecinos se solaparan entre sí 10 cm. Los tres cubos tienen etiquetas Pyro Emisor, con sólo Densidad y Color activos en cada uno. El cubo de la izquierda utiliza el rojo, el del medio el verde y el de la derecha el azul como Color para la Densidad. El cubo rojo que emite humo es el primer objeto con la etiqueta Pyro Emisor en el Gestor de Objetos. El segundo objeto Pyro es el cubo con el humo verde. Finalmente, el Gestor de Objetos emitirá humo azul.

Por defecto, la opción Sobrescribir está activa en todas las etiquetas Pyro Emisor y conduce al resultado que se muestra en el centro de la imagen. No hay una mezcla significativa de colores. Más bien, debido al orden de los objetos en el Gestor de objetos, el humo azul oscurece el humo verde y el humo verde oscurece el humo rojo. Cuanto más bajo esté un objeto con una etiqueta de Emisor Piro en relación a otros Emisores Piro en el Gestor de Objetos, más de las simulaciones Piro por encima de él estarán oscurecidas por el color.

Los colores resultantes se calculan de forma bastante diferente cuando la opción Sobrescribir está desactivada. En este caso, el orden de los objetos con etiquetas Pyro Emisor ya no importa y todos los colores de densidad se mezclan, como se puede ver a la derecha en la imagen de arriba. Al mezclar los colores del humo, ahora aparecen tonos amarillos y naranjas, así como violetas y turquesas.

Sin embargo, si desea simular las simulaciones de forma independiente, por ejemplo, también evitar la mezcla de colores de los Pyro Emisores cercanos, o utilizar diferentes ajustes de Simulación para los Pyro Emisores, puede utilizar diferentes objetos de Escena de Simulación. Aquí puede encontrar un ejemplo de ello. También puedes leer sobre las relaciones entre la etiqueta Emisor Pyro, el objeto Salida Pyro y los objetos Escena de Simulación aquí.


Interacción con partículas estándar

También puede ser muy interesante animar objetos junto con la simulación. Piense, por ejemplo, en las chispas que suben por las llamas de una hoguera o en las burbujas de aire que suben bajo el agua. Para estos efectos pueden ser muy útiles las simulaciones almacenadas, que se pueden crear con el objeto Pyro Output.

Para ello, primero crea tu simulación como de costumbre con un objeto Emisor(Etiqueta Emisor Pyro) y el objeto Salida Pyro. Si está satisfecho con la simulación, active los canales habituales de Densidad, Temperatura y Velocidad en el objeto Pyro Output, por ejemplo. Para ello, establece el modo de cada una de estas propiedades en la pestaña Objeto del objeto Salida de Pyro en En exportación. Por último, pulse el botón Calcular en la pestaña Caché y haga que los archivos de la caché se guarden en una nueva carpeta con el nombre deseado. Dado que los archivos de caché pueden llegar a ser muy grandes, en realidad sólo deberías activar los canales de simulación que realmente necesitas. Además, guarde en la memoria caché sólo las imágenes de animación que vaya a necesitar más adelante, por ejemplo, para la renderización. Puede establecerlo utilizando los valores Tiempo: Mín y Tiempo: Máx en la pestaña Proyecto de las Preferencias del proyecto.

Los canales con la información de Densidad y Temperatura pueden ser utilizados posteriormente para el renderizado, ya que el Material de Volumen Redshift los utiliza. Sin embargo, para el control de los movimientos de los objetos, la información sobre la velocidad es especialmente útil en este caso, ya que se trata de vectores con los que se registra la velocidad y la dirección de los movimientos del flujo en el gas simulado.

En principio, después de calcular el caché, puede cerrar la escena de simulación y recuperar un objeto Volume Loader del menú Volume en una nueva escena. En su campo de nombre de archivo, defina el primer archivo .vdb de la secuencia de caché guardada anteriormente. En una zona de información del cargador de volúmenes verás ahora los nombres de los canales de simulación contenidos en los archivos. Desactive las opciones de Densidad y Temperatura, porque sólo nos interesa la Velocidad. Los ajustes de la parte inferior del cuadro de diálogo pueden utilizarse, por ejemplo, para escalar los vectores de velocidad(ajuste del factor ) o para ajustar la velocidad de reproducción( ajuste dela velocidad ). Aquí también se puede especificar el número de fotograma a partir del cual debe comenzar la simulación en esta nueva escena( ajuste dedesplazamiento ).

En el siguiente paso necesitamos un Creador de Volumen, el cual cambias al tipo de volumen Vector y luego enlazas el Cargador de Volumen en su lista de Objetos. Ajusta el Tamaño del Voxel a la escala de tu simulación Pyro. Así que si el Emisor en la escena de simulación original era una esfera con un radio de 10 cm, por ejemplo, pruebe aquí un Tamaño de Voxel entre 2 cm y 0,5 cm. El generador de volúmenes genera ahora para nosotros un campo de vectores estrechamente mallado cuya longitud y dirección están controladas por la velocidad de la simulación. La siguiente figura resume de nuevo estos pasos.


Un cargador de volúmenes importa los datos de la simulación (izquierda), que luego son procesados por un generador de volúmenes (derecha).

Ahora es el momento de llamar a un objeto Campo de Fuerza y vincular el Generador de Volumen allí. Los vectores de lectura del Generador de Volumen adquieren así un significado, concretamente como vectores de velocidad, y pueden así actuar sobre las partículas. Para el Tipo de Velocidad, seleccione Velocidad Absoluta con una Fuerza de 100. De este modo, las velocidades simuladas pueden transferirse con precisión a las partículas. Ahora todo lo que necesitamos son partículas.

Para ello, puede, por ejemplo, llamar al Emisor desde el menú Simular y moverlo aproximadamente al punto de origen de la simulación. Ajuste también la rotación y el tamaño del Emisor para que esté lo más centrado posible en la ubicación del Emisor Pyro original. Asegúrese de tener un número suficientemente grande de partículas generadas y limite su tiempo de vida de forma sensata, dependiendo de la longitud de su secuencia de simulación. Además, deja la velocidad de las partículas en 0 cm. Las velocidades deben provenir enteramente del objeto del Campo de Fuerza. La siguiente imagen también muestra este paso de forma resumida.


Un objeto Campo de Fuerza interpreta los vectores del Generador de Volumen como velocidades (izquierda), que pueden transferirse a las partículas de un Emisor estándar (derecha).

Si ahora ejecuta la línea de tiempo, verá cómo las partículas se crean primero en la zona del Emisor y luego se arrastran por la zona de la simulación anterior. La siguiente imagen lo muestra por secciones.


La secuencia de imágenes muestra un ejemplo de cómo las partículas simples son puestas en movimiento por los vectores de velocidad de la simulación cargada.

El enlace con la geometría puede hacerse ahora directamente subordinando, por ejemplo, una pequeña esfera bajo el objeto Emisor. Para ello, sus opciones Mostrar objetos y Renderizar instancia deben estar activas para poder ver los objetos y al mismo tiempo ahorrar la mayor cantidad de memoria posible.
Sin embargo, eres aún más flexible si creas un objeto Clonador de MoGraph en su lugar y activas el modo Objeto allí. A continuación, el Emisor puede asignarse como objeto en el Clonador. De esta forma puedes utilizar Multi-Instancia en modo Instancia, que ahorra aún más memoria y es más rápido que Renderizar Instancia.


Utilizando un objeto clon, la geometría puede ser asignada a las partículas de una manera aún más eficiente en términos de memoria. Aquí una pequeña esfera se convirtió en un objeto Hijo del objeto Clonador.


Interacción con las Thinking Particles

Tienes un poco más de control, por ejemplo, sobre la alineación y la escala de las partículas, cuando utilizas el sistema Thinking Particles. Ahí, por ejemplo, también tienes la ventaja de que el volumen de un objeto se puede utilizar como Emisor, de forma similar al objeto Emisor de una etiqueta Pyro Emisor. Además, se puede reutilizar gran parte de la configuración de la escena ya descrita anteriormente para las partículas estándar. La principal diferencia está en la creación de las partículas, que debe hacerse mediante un pequeño montaje de XPresso. Para ello, primero creamos un objeto que actuará como Emisor. En nuestro caso, usamos una primitiva Esfera convertida de tamaño adecuado para este propósito y le damos una etiqueta XPresso, que puedes encontrar en el menú Etiquetas del Gestor de Objetos en el grupo Etiquetas de Programación.

Dentro del circuito, utilizamos un nodo Psource para generar el número deseado de partículas. En el circuito que también se muestra en la figura siguiente, se utiliza el modo Shot, que genera exactamente el número de partículas establecido por cada fotograma de la animación. Comparando esto con el número de fotogramas actual (por nodo temporal), se puede controlar así el lapso de tiempo exacto y también el número total de partículas. Aquí, por ejemplo, sólo se crean partículas en el fotograma 1 de la animación. El resultado del Nodo de Comparación es un valor booleano que se conecta a la entrada de la fuente de partículas.

Su salida se enruta a una Posición P en el Nodo Volumen, que está vinculada a nuestra esfera Emisor. Seleccionando Tipo Interior junto con un valor de Profundidad apropiado, el Nodo calculará posiciones individuales para todas las partículas inyectadas dentro de la esfera. Estas posiciones deben escribirse de nuevo en las partículas generadas. Esto es responsabilidad del Nodo P Set Data, que se alimenta por un lado con las partículas de salida del Nodo PSource y las posiciones del Nodo PPosition in Volume. De este modo, la generación de las partículas en el momento deseado dentro de la esfera ya se ha completado. Ahora sólo queda asignar continuamente las velocidades del objeto Campo de Fuerza a las partículas.

Para ello, crea un Nodo PPass y conéctalo a un Nodo Objeto PForce donde esté asignado nuestro objeto Campo de Fuerza. El circuito completo puede verse en la siguiente figura.


Ejemplo de circuito XPresso para crear Thinking Particles en el volumen de un objeto y luego aplicarles el efecto de un objeto Campo de Fuerza.

De nuevo, en esta configuración, se puede utilizar un Objeto Clonador MoGraph para poblar las partículas con objetos. Para ello, vuelva a utilizar el modo Objeto en el objeto Clonador. Esta vez, sin embargo, se debe asignar como objeto el grupo en el que están presentes las partículas. Como no hemos creado una asignación de grupo en el circuito, todas las partículas acaban automáticamente en el grupo Todos. Esto se encuentra en los ajustes de Thinking Particles, que se pueden encontrar a través del menú Simular en Thinking Particles. Una vez que hayas arrastrado este grupo de Todos al campo Objeto del objeto Clonador, la conexión está hecha y puedes agrupar objetos bajo el objeto Clonador como de costumbre para usarlos como geometría de partículas.


Asignar el grupo Todos de la configuración de Thinking Particles a un objeto clonado.


A la izquierda está el renderizado del editor de las Thinking Particles clonadas, a la derecha el renderizado junto con la simulación.


Interacciones con las fuerzas

El objeto Pyro Output y también la etiqueta Pyro Emitter ya contienen varios parámetros que se pueden utilizar, por ejemplo, para simular un movimiento del viento y varias turbulencias de aire. Dado que muchas de estas propiedades también pueden animarse mediante fotogramas clave o circuitos, ya se dispone de un amplio arsenal de herramientas para influir en la simulación. Sin embargo, cuando se trata de cambios locales en la simulación, pueden ayudar los objetos de Fuerza, que se encuentran en el menú Simular en Fuerzas.


Simulación distorsionada por objetos de Fuerza.

Estos objetos de fuerza pueden utilizarse en el proceso:

Además, las zonas en las que deben actuar estas fuerzas pueden estar limitadas por los objetos del campo, de modo que, por ejemplo, el viento sólo afecta al extremo superior de una columna de humo ascendente. Encontrará información detallada sobre estos objetos de fuerza aquí.

Nota:Si no quieres que todos los objetos de fuerza de una escena afecten a la simulación de Pyro, puedes incluir o excluir fuerzas individuales. Puedes encontrar una lista típica de inclusión/exclusión para esto en los ajustes de la Escena de Simulación o también en las Preferencias del Proyecto que enlazas a la simulación a través del objeto Pyro Output. De este modo, algunas fuerzas pueden utilizarse, por ejemplo, sólo con partículas y otras con la simulación Pyro.


Interacciones con propiedades Pyro negativas

Dado que la densidad y la temperatura también se pueden ajustar negativamente (a través de los parámetros Añadir Densidad y Añadir Temperatura de la etiqueta Pyro Emisor), también son concebibles interesantes interacciones entre múltiples Pyro Emisores dentro de la misma escena Pyro. Por ejemplo, un objeto puede emitir densidad negativa y temperatura negativa, disipando y mitigando así el aumento de calor y densidad de otro Emisor. La siguiente imagen muestra un ejemplo. Allí, la esfera superior genera propiedades negativas, que son presionadas sobre la esfera inferior mediante una velocidad dirigida hacia abajo. La esfera inferior genera una densidad y una temperatura normales, por lo que se amortigua y enfría cuando se juntan las dos corrientes de gas.



Malla de las simulaciones Pyro

La estructura interna de la simulación Pyro con sus vóxeles también permite otras interesantes posibilidades de combinación. Por ejemplo, puedes almacenar propiedades individuales, como Densidad o Temperatura, en la RAM del objeto Pyro si marcas las opciones correspondientes allí en la pestaña Objeto con On. Si ahora agrupas el objeto Pyro bajo un Volume Mesher, las propiedades Pyro almacenadas en RAM se rellenarán con Voxels y se convertirán en polígonos. Tienes aún más control sobre esta conversión si agrupas el objeto Pyro bajo un Generador de Volumen y luego lo colocas bajo un Volume Mesher. Así, en el Generador de Volumen, también puedes utilizar su Tamaño de Voxel para establecer la densidad de subdivisión en la malla poligonal. Tenga en cuenta que estos vóxeles sólo cubren las regiones de gas más densas. Por lo tanto, no se tienen en cuenta por defecto el gas de abanico fino ni su densidad o temperatura. Puede influir en esto a través del Umbral de Rango de Voxel en la Malla de Volumen.


A la izquierda puede ver una simulación de densidad para la que se ha activado el almacenamiento de información de densidad en RAM en el objeto Pyro Output(densidad marcada con 'On'). A la derecha, este objeto Pyro Output ha sido agrupado bajo un Volume Generator y un Volume Mesher. Se crean polígonos en el área de la densidad, que se pueden ocupar con materiales como de costumbre y también se pueden renderizar sin Redshift.

Además, la información de color de la densidad también puede utilizarse para este mallado. Esto requiere un poco de prestidigitación.
En primer lugar, configura tu simulación Pyro como de costumbre. Para utilizar colores, active la opción Color en los ajustes de Densidad de la etiqueta Emisor pirotécnico. En el ejemplo siguiente, dos esferas recibieron etiquetas de Emisor pirotécnico de distinto color y se animaron en su posición para que el humo de ambos Emisores se mezclara más.


A la izquierda puedes ver la simulación Pyro con el humo de dos esferas, cada esfera produciendo humo de diferente color. A la derecha, puedes ver el resultado calculado como una malla, donde también puedes ver los diferentes colores.

Para que podamos procesar los colores simulados por separado, necesitamos los colores como caché RAM o archivos caché. Para que el mallado funcione utilizando un generador de volúmenes y un mallador de volúmenes, necesitamos también la información sobre la densidad. Por lo tanto, procedemos de tal manera que duplicamos el objeto Pyro Output ya existente. En el primer objeto Pyro Output habilitamos sólo el cálculo de la Densidad en la Exportación. En el segundo objeto Pyro Output activamos sólo el Color On Export. A continuación, utilizamos las funciones de caché de estos objetos y hacemos que se calculen allí los archivos de caché respectivamente. Asegúrese de almacenar secuencias de caché distintas para la densidad y el color, es decir, utilice ubicaciones y nombres diferentes. Un objeto Pyro Output lee entonces sólo la densidad y el otro lee sólo los colores simulados de los archivos .vdb.


Necesitamos un total de dos objetos Pyro Output. El primero almacena sólo la simulación de densidad como una secuencia vdb, el otro objeto Pyro Output crea sólo una secuencia vdb para los colores simulados de las etiquetas Pyro Emitter.

Ahora crea un Volume Creator y agrupa allí el objeto Pyro Output, que lee la caché de densidad. Utilice un Volume Mesher sobre el Volume Generator para que se calcule la geometría. Si es necesario, ajuste el Tamaño de vóxel en el Generador de volumen hasta que esté satisfecho con el nivel de detalle de la representación.
Ahora añade una etiqueta de Color de Vértice al Volume Mesher. Puede encontrar esta etiqueta en el Gestor de Objetos, en Etiquetas/Etiquetas adicionales. En la sección Fields de esta etiqueta puedes asignar el objeto Pyro Output que lee la caché de color. Esta información de color se asigna así a los puntos individuales del Volume Mesher.


Una etiqueta Vertex Color lee la información de color de un Objeto Pyro y la transfiere a los puntos del Volume Mesher.

Para poder utilizar los colores de la etiqueta Vertex Color dentro de un material Redshift, utilizamos allí un Nodo de Atributo de Vértice. En su campo Nombre de Atributo, simplemente arrastra la etiqueta Color de Vértice desde el Gestor de Objetos hasta él.


Los colores de los vértices de la etiqueta se leen dentro del material Redshift con un Nodo de Atributos de Vértices y pueden utilizarse como color base, por ejemplo.

Como alternativa a la forma explicada de almacenar dos secuencias de caché vdb separadas, también puedes cambiar los dos objetos Pyro Output para las propiedades Density y Color a On cada uno y así tener dos cachés separadas creadas en RAM. Esto también funciona con la configuración descrita.


Renderización de simulaciones Pyro

Los ajustes Pyro enlazados en la pestaña Escena Pyro del objeto Salida Pyro proporcionan diferentes modos de visualización y calidades de visualización de la simulación ya en los Viewports. Para ello, basta con utilizar uno de los modos de visualización de sombreado que hay(Sombreado de Gouraud, Sombreado rápido o Sombreado constante ). Sin embargo, para poder renderizar realmente la simulación con Redshift, y así, por ejemplo, poder iluminarla tú mismo o incluso hacer que genere luz, la simulación debe estar disponible como caché. Hay varias opciones para ello:

Nota:Si se utiliza la caché RAM (modos Activado o Activado Exportación en el objeto Salida Pyro) para renderizar la simulación en el Gestor de Imágenes, hay que tener en cuenta que hacerlo puede aumentar considerablemente los requisitos de memoria. La simulación se copia en una zona de memoria separada para el renderizado, de modo que pueda seguir trabajando en la escena durante el renderizado. Para una gestión optimizada de la memoria al renderizar simulaciones Pyro, primero debes guardar la simulación como una secuencia .vdb y luego hacer que se cargue con el objeto Pyro Output o, por ejemplo, con el objeto RS Volume.

Renderización de una simulación en RAM con Redshift

Un prerrequisito para los siguientes pasos es que ya haya activado Redshift como renderizador en la Configuración de Render.

Si la simulación está disponible en la RAM (las propiedades deseadas del objeto se han marcado con On en el objeto Pyro Output y la simulación se ha ejecutado una vez fotograma a fotograma), puede, por ejemplo, generar un material de volumen a través del menú Crear del Gestor de Materiales en Redshift/Volumen. Allí tendría que introducir los nombres de los canales de simulación Pyro activados (por ejemplo, Densidad, Temperatura o Color).
Es aún más cómodo llamar allí al material del Volumen Pyro ya convenientemente configurado. Allí, la entrada de los canales típicos de simulación Densidad y Temperatura se realiza automáticamente. Además, se utiliza por defecto la simulación realista del Cuerpo Negro para los colores de la distribución de la temperatura.

Dentro del material Volumen RS o Volumen Pyro, la propiedad Dispersión representa la densidad el volumen renderizado y Emisión como propiedad generadora de luz representa la temperatura de la simulación. Estas son ya las dos características más importantes de una simulación Pyro para el renderizado. El material Volumen RS o Volumen Pyro puede entonces asignarse al objeto Salida Pyro y puedes renderizar la simulación directamente.


Asignaciones típicas de densidad y temperatura de una simulación Pyro dentro de un nodo RS Volume.

Nota:Si se desea renderizar la simulación sólo en el Gestor de Imágenes o en la Vista de Renderizado de Redshift, se pueden utilizar los modos Activado y Activado Exportación en el objeto Salida Pyro. La renderización en los Viewports o la combinación, por ejemplo, con un Generador de Volumen, sólo es posible en el modo Activado.


Nota:

Para mostrar el desenfoque de movimiento en esta configuración, se debe asignar una etiqueta Redshift Object al objeto Pyro Output. Allí se activa la evaluación del Vector de Movimiento y se introduce Velocidad como canal de simulación para los vectores de velocidad en la simulación en el campo X. Utilice el valor de Escala para controlar la intensidad del desenfoque de movimiento. Recuerde que el cálculo del Desenfoque de movimiento también debe estar activado en las Preconfiguraciones de renderizado.




Renderización de una secuencia VDB con Redshift

Si se ha guardado una simulación como secuencia .vdb (se han marcado las propiedades de objeto deseadas en el objeto Pyro Output con On Export y se ha guardado la simulación en la pestaña Cache pulsando el botón Calculate), se requiere un objeto Redshift Volume, que se puede encontrar en el menú Volume si Redshift es el renderizador activo (ver Render Settings).

En el objeto Redshift Volume encontrará la opción de cargar los archivos .vdb. Para ello, defina primero la ruta del primer archivo de la secuencia en el campo Ruta y, a continuación, pase a la pestaña Animación del objeto. Allí encontrará el menú Modo, donde podrá seleccionar, por ejemplo, el modo Simple. Esto significa que la simulación guardada se recupera automáticamente fotograma a fotograma cuando se renderiza una animación. Al llegar al último archivo de simulación de la secuencia, esta reproducción finaliza automáticamente. En los otros modos disponibles, por ejemplo, la repetición de la simulación puede activarse en este punto. A continuación, pulse el botón Detectar Fotogramas para contar la secuencia de archivos e introducir automáticamente su número en esta página de diálogo. Compruebe la especificación de la velocidad de fotogramas para asegurarse de que coincide con la velocidad de fotogramas utilizada en su escena. De lo contrario, una simulación cargada puede mostrarse más rápida o más lenta que la simulada originalmente.


Tras definir la ruta de una secuencia VDB (izquierda), su reproducción puede controlarse en la pestaña Animación (derecha). Además, el área de información muestra qué propiedades de los objetos están contenidas en la secuencia de la VDB.

Como puede verse en la figura anterior, la lista de canales muestra qué propiedades contienen los archivos cargados. Estos términos también pueden utilizarse en el material RS Volume para definir los colores, la densidad y el brillo de la simulación durante el renderizado. Este paso no difiere de la representación de una simulación en la RAM descrita anteriormente. En este caso, sin embargo, el material de Redshift Volume se asigna al objeto RS Volume.


Nota:

A diferencia de la renderización directa de una simulación que reside en la RAM, no se requiere ninguna etiqueta de objeto Redshift para habilitar la renderización de desenfoque de movimiento cuando se utiliza el objeto RS Volume. Encontrará los correspondientes ajustes de desenfoque de movimiento directamente en el Volumen RS. Aquí, también, simplemente introduce Velocidad para el canal X, siempre que la simulación cargada tenga la propiedad Velocidad (ver el Área de Información en el objeto Volumen RS.

Nota:

Encontrará información detallada sobre el objeto Redshift Volume y el material Redshift Volume aquí.