Ouvrir la rubrique avec les liens de navigation
Sur cette page, vous trouverez une brève introduction au système de simulation Pyro, qui vous permet de simuler du brouillard, des nuages, de la fumée du feu et des explosions. Pour plus d'informations sur tous les paramètres de la propriété Émetteur Pyro, de la propriété Carburant Pyro, de l'objet Sortie Pyro ou des paramètres de la scène Pyro qui y sont liés, veuillez vous référer aux pages d'aide correspondantes.
Pour gérer différents paramètres de simulation dans une scène, utilisez l'objet Scène de simulation.
Par exemple, pour effectuer le rendu d'une simulation Pyro enregistrée sous forme de séquence .vdb, vous pouvez utiliser l'objet Redshift Volume en conjonction avec le matériau Redshift Pyro Volume.
Les sujets suivants sont abordés ici :
Tout d'abord, il peut être surprenant que nous parlions ici d'une simulation de fluide. En fait, les mêmes lois physiques s'appliquent aux gaz et aux liquides, de sorte que des méthodes de calcul similaires peuvent être utilisées pour les liquides et également pour les mouvements de gaz. Dans Pyro, cependant, l'accent est clairement mis sur les simulations de gaz en raison des paramètres fournis.
Dans ce type de simulation, il faut d'abord un volume dans lequel le gaz est créé. Le gaz se voit attribuer des propriétés telles que la densité, la masse, la vitesse et la température. L'environnement de l'émetteur de gaz acquiert également des propriétés, telles que la température, la pression ou la direction et la force de la gravité. Grâce à ces données clés, la simulation peut alors prévoir le mouvement des gaz et des solides en suspension, image par image. Comme pour d'autres simulations, il est donc important de ne pas sauter dans le temps à volonté, mais que la simulation puisse se dérouler image par image depuis le début. Cependant, la simulation peut aussi être automatiquement sauvegardée en mémoire pendant la lecture, ce qui permet non seulement d'accélérer la lecture, mais aussi d'effectuer un rendu avec Redshift.
Afin de pouvoir calculer la simulation le plus rapidement possible, l'espace (ou l'air autour de l'émetteur) est divisé en cubes définis, les "voxels". Vous connaissez peut-être déjà ce principe grâce au système OpenVDB de l'objet Générateur de Volume. La taille de ces voxels détermine l'échelle de la simulation, ainsi que sa densité de détails et ses besoins en mémoire. Plus les voxels sont petits, plus le feu ou la fumée peuvent être calculés de manière détaillée et précise, mais plus il faut de mémoire et de puissance de calcul, ce qui doit être pris en compte, en particulier pour les grands volumes de simulation. Par conséquent, choisissez toujours une taille de voxel adaptée.
Dans chaque voxel, on vérifie ensuite s'il y a une densité de gaz significative, par exemple. Les voxels communiquent avec leurs voisins, par exemple pour pouvoir créer de nouveaux voxels dans le voisinage en cas d'explosion généralisée. Étant donné que chaque cube de l'espace voxel nécessite une quantité correspondante de mémoire et de puissance de calcul, les voxels ne sont générés que lorsque la simulation le juge nécessaire. L'avantage est que nous ne devons pas définir nous-mêmes un volume de simulation, mais que c'est la simulation elle-même qui détermine où les voxels sont nécessaires.
Pour la simulation proprement dite, chaque voxel est à nouveau subdivisé en cubes spatiaux plus petits afin de pouvoir calculer et représenter les flux et tourbillons caractéristiques au sein d'une flamme ou d'une colonne de fumée. Ce faisant, nous obtenons déjà un aperçu significatif de la simulation dans les vues ombrées de l'éditeur lorsque nous jouons la simulation.
Si la simulation nous plaît, elle peut être stockée en mémoire ou même sauvegardée comme fichier cache. De cette façon, la simulation peut être réutilisée dans n'importe quelle scène sans nouvel effort de calcul ou même être transférée vers d'autres programmes 3D avec lesquels la représentation des données de simulation au format vdb est possible.
Enfin, les données de simulation peuvent évidemment être restituées sous la forme d'une seule image ou d'une animation.
Comme décrit ci-dessus, la simulation nécessite un volume dans lequel le gaz est généré. Par exemple, imaginez cette zone comme la pointe d'une allumette. Là, la friction génère de la chaleur, qui enflamme ensuite le combustible. Une réaction se produit entre l'oxygène et le bois. De la chaleur supplémentaire et, par exemple, de la suie sont générées, qui s'élèvent sous la forme d'un panache de fumée.
La tâche de l'émetteur est de décrire d'abord l'endroit où une telle réaction se produit (tête d'allumette). En outre, la densité énergétique du lieu doit être décrite, par exemple, la quantité de combustible qui s'y trouve, la quantité de fumée et la quantité de chaleur qui devraient être générées. La description du carburant est facultative. Par exemple, nous pouvons déjà décrire la flamme d'une bougie comme un émetteur si nous définissons uniquement la température de la mèche et la quantité de suie qui s'élève. En pratique, voici à quoi cela ressemble :
Tout d'abord, créez ou sélectionnez l'objet qui sera votre émetteur de feu ou de fumée. Cet objet peut également être masqué ultérieurement et ne doit donc pas nécessairement être une partie visible de vos modèles. Souvent, par exemple, un simple objet à base sphérique peut être utilisé comme émetteur. Assurez-vous simplement que la mise à l'échelle est raisonnable, c'est-à-dire que les dimensions sont réalistes.
Sinon, tous les objets polygonaux, objets primitifs paramétriques ou splines peuvent être utilisés, ainsi que les voxels d'un générateur de volume.
Attribuer une propriété Émetteur Pyro à l'objet, par exemple via le menu Propriétés dans la catégorie Simulation du gestionnaire d'objets. Vous pouvez ainsi définir, entre autres, le nombre et le type de composants Pyro qui doivent être créés. Le propriété Carburant Pyro se trouve également dans le même menu, mais il est en fait identique à la propriété Émetteur Pyro. Sur la propriété Carburant Pyro, les paramètres par défaut sont uniquement conçus pour simuler une explosion, alors que sur la propriété Émetteur Pyro, des flammes et de la fumée sont créées par défaut. Cependant, la propriété Émetteur Pyro peut également être reconfigurée pour devenir une propriété Carburant Pyro et générer ainsi des explosions. De même, la propriété Carburant Pyro peut également générer de la fumée et des flammes si les options correspondantes y sont activées.
Remarque :Pour toutes les splines et pour les objets polygonaux où aucun volume fermé n'est affiché (par exemple, les objets avec des trous ou un simple plan), l'option Émetteur Surface doit être activée sur la propriété Pyro. L'émetteur de surface s'assure automatiquement que tous les trous des polygones de la géométrie sont fermés pour les calculs de l'émetteur. Le paramètre Épaisseur peut également être utilisé pour créer un volume pour de tels objets dans lesquels la simulation Pyro peut générer des gaz chauds ou de la fumée, par exemple.
Avec la propriété Émetteur Pyro, un objet Sortie Pyro est automatiquement créé, dans lequel vous pouvez sélectionner ultérieurement, par exemple, les propriétés de la simulation que vous souhaitez stocker en tant que cache dans la RAM ou en tant que fichiers. Ceci est nécessaire pour le rendu de la simulation avec Redshift, mais peut également être utilisé pour un rendu accéléré dans l'éditeur ou pour transmettre la simulation à d'autres programmes.
Note :Si l'objet Sortie Pyro a été accidentellement supprimé, il peut être recréé en utilisant le bouton correspondant dans les paramètres Pyro des préférences du projet.
Dans l'objet Sortie Pyro, vous trouverez un lien vers les paramètres de simulation Pyro dans l'onglet Scène Pyro. Vous y trouverez tous les paramètres importants de la simulation, tels que la taille du voxel, déjà mentionnée au début. La propriété Emetteur Pyro n'est responsable que des paramètres de l'émetteur et de la scène Pyro liés à l'objet Sortie Pyro pour le calcul de la simulation réelle.
Si vous lancez maintenant l'animation image par image en appuyant sur la fonction Lecture avant, vous verrez déjà la génération de feu et de fumée sur votre objet. Notez que le comportement et le niveau de détail de la simulation (ainsi que ses besoins en mémoire) dépendent fortement de la taille de voxel définie.
Pour plus de clarté, les images suivantes montrent une fois de plus la relation entre la propriété Émetteur Pyro, l'objet Sortie Pyro et les paramètres de simulation Pyro qui y sont liés, qui est déjà décrite ci-dessus. La figure suivante montre le cas par défaut. Un objet (ici un cube) s'est vu attribuer la propriété Émetteur Pyro. Cette opération crée un objet Sortie Pyro dans la scène. Vous y trouverez l'onglet Scène Pyro ainsi que les différentes options de cache. Par défaut, les paramètres de simulation Pyro y sont liés, dont les valeurs sont issues des préférences de projet de Cinema 4D.
À gauche, les paramètres de simulation sont visibles sur l'objet Sortie Pyro dans le gestionnaire d'attributs. Par défaut, leurs valeurs sont identiques à celles de la catégorie Simulation/Pyro dans les préférences du projet (voir la partie droite de l'image).
Une deuxième option consiste à appeler un objet Scène de simulation dans le menu Simuler de Cinema 4D. Il peut être glissé et déposé dans le champ Scène des paramètres de la scène Pyro sur l'objet de sortie Pyro. Les paramètres de simulation Pyro disponibles dans l'objet Scène de simulation seront alors utilisés. Les valeurs Pyro des préférences du projet ne jouent alors plus aucun rôle pour cette simulation.
Comme il peut y avoir un nombre illimité d'objets Scène de simulation dans la scène, ils permettent de gérer différents paramètres de simulation qui peuvent être facilement assignés à l'objet Sortie Pyro par glisser-déposer.
Les paramètres de simulation Pyro d'un objet Scène de simulation peuvent également être utilisés comme scène Pyro sur l'objet Sortie Pyro.
Il manque maintenant un lien entre les paramètres de simulation Pyro et les propriétés Émetteur Pyro qui doivent y accéder. À cette fin, un champ d'élément est disponible dans l'onglet Scène de l'objet Scène de simulation, ainsi que dans les préférences du projet. Toutes les propriétés Émetteur Pyro qui doivent utiliser ces paramètres de simulation doivent être glissées et déposées à cet endroit. L'image suivante l'illustre à titre d'exemple.
Dans la même zone, vous trouverez également une liste de Forces où vous pouvez lier les objets de Force qui devraient affecter la simulation Pyro (voir également l'image suivante).
Enfin, vous pouvez également lire directement à partir du nom de l'objet Sortie Pyro quels paramètres de simulation ont été liés à cet objet. Avec un lien Scène Pyro vers les préférences du projet, l'attachement du nom apparaît à cet endroit (par défaut). Si un objet Scène de simulation a été utilisé, son nom apparaît en pièce jointe de l'objet Sortie Pyro. Ceci est également visible dans l'image suivante.
Lorsque vous utilisez des objets de la scène de simulation comme source pour les paramètres de simulation Pyro, vous devez vous assurer que les propriétés Émetteur Pyro correspondantes sont liées dans la liste des éléments. Si seules les préférences de projet sont utilisées, cela se fera automatiquement dans leur liste d'éléments.
Il y a maintenant deux premiers éléments importants que vous devez ajuster. Dans les paramètres de la scène Pyro de l'objet Sortie Pyro, vous trouverez le paramètre Taille de voxel. Ce paramètre définit la finesse de la subdivision de l'espace par la simulation. Par conséquent, une petite taille de voxel conduit automatiquement à un calcul plus précis et à une simulation plus détaillée. Dans le même temps, les besoins en calcul et en mémoire de la simulation augmentent en conséquence. Il est donc nécessaire d'adapter cette valeur à la taille de la simulation. Au départ, la taille de l'objet auquel vous avez attribué la propriété Émetteur Pyro peut servir de valeur de référence. Il est donc judicieux de tenir compte des tailles réalistes dans les paramètres de la scène Pyro sur l'objet Sortie Pyro. La figure suivante montre l'influence de la taille du voxel sur le résultat de la simulation.
Dans cet exemple, un anneau déformé est utilisé comme émetteur Pyro. Les images du haut montrent le résultat de la simulation après 40 images d'animation. Ci-dessous, un gros plan de l'anneau masqué permettant d'examiner la répartition des gaz nouvellement formés dans le volume de l'objet.
Dans l'image ci-dessus, de gauche à droite, des tailles de voxels de 5 cm, 1 cm et 0,1 cm ont été utilisées. La largeur de l'anneau déformé, qui sert ici d'émetteur Pyro, est d'environ 20 cm. On voit clairement comment la réduction de la taille du voxel permet un remplissage plus efficace de l'anneau avec du gaz et une simulation plus détaillée. Dans le même temps, le temps de simulation augmente considérablement et les besoins en mémoire montent en flèche.
En particulier pour les objets de grande taille, une petite taille de voxel peut rapidement conduire à une saturation de la mémoire disponible. Dans ce cas, l'une des solutions consiste à augmenter la taille des voxels pour l'échantillonnage du volume au niveau de l'objet émetteur. Ceci est possible en utilisant la fidélité à l'objet sur la propriété Emetteur Pyro. Cette valeur en pourcentage se réfère directement à la taille du voxel définie précédemment. Ainsi, avec des valeurs de fidélité à l'objet inférieures à 100 %, vous pouvez réduire de manière sélective le nombre de voxels dans la zone de l'émetteur Pyro. Il en résulte un lissage et un grossissement de la forme de l'émetteur détecté et la non prise en compte des sections de l'objet dont la section transversale est inférieure à la fidélité à l'objet. Souvent, cependant, cette imprécision peut être négligée, surtout si l'on peut ainsi économiser de la mémoire et du temps de calcul. L'image suivante en donne un exemple.
Cette séquence d'images utilise à nouveau l'anneau déformé du dernier exemple comme émetteur. Une taille de voxel de 1 cm a été utilisée pour les trois images. La seule différence entre les images est le paramètre taille de voxel de l'objet. 10% ont été utilisés à gauche, 50% au centre et 100% à droite....
Comme le montre l'image ci-dessus, une forte réduction de la fidélité à l'objet peut conduire à ce que l'objet entier ne soit plus utilisé comme émetteur pyro. Par conséquent, moins de fumée, de gaz chauds ou de carburant sont éjectés. De même, la distribution du gaz généré peut devenir plus inégale, car seules les parties les plus volumineuses de l'objet sont remplies de gaz. Cependant, l'image montre aussi clairement dans cet exemple que les différences peuvent être très faibles dans certains cas. La différence entre les résultats des simulations du centre et de la droite est donc négligeable. Cependant, nous économisons de nombreux voxels en volume.
En résumé, utilisez la taille des voxels dans les paramètres de la scène Pyro de l'objet Sortie Pyro pour contrôler l'échelle de la simulation et donc son niveau de détail. Il met également à votre disposition un outil permettant d'optimiser les besoins de stockage et la durée des calculs. Des tailles de voxels plus petites signifient toujours des calculs de simulation plus complexes et des besoins en mémoire plus importants. Elle est plafonnée à 80 % de la mémoire disponible pour les simulations. Si, par exemple, un trop grand nombre de voxels doit être généré en raison d'un nuage ou d'une flamme trop petit(e) ou trop grand(e), il se peut qu'il ne soit plus possible de capturer la totalité du volume du nuage, de la flamme ou de l'explosion. Il peut alors y avoir des zones manquantes dans ces sections, par exemple dans un nuage.
Vous trouverez des exemples et des solutions pour éviter ce problème dans la description des paramètres de simulation de Pyro. Par conséquent, la taille du voxel doit toujours être aussi grande que possible et aussi petite que nécessaire.
Dans l'exemple ci-dessus, un objet complet a été utilisé comme émetteur. Toutefois, il est également possible de ne définir que certaines parties d'une surface comme émetteurs. Cela permet, par exemple, au feu de se propager lentement dans une zone ou à la fumée de ne s'attarder qu'à certains endroits.
La solution à cette tâche réside dans l'utilisation de cartes d'influence de points. Ceux-ci peuvent être créés très rapidement en convertissant une sélection de points, par exemple, si vous appelez la commande Définir une zone d'influence... dans le menu Sélectioon et que vous définissez ensuite une valeur de 100% dans sa boîte de dialogue, par exemple. Cependant, une carte d'influence de points peut également être créée directement en la peignant.
Pour ce faire, sélectionnez votre objet polygone (un objet paramétrique doit d'abord être converti à l'aide de la fonction Convertir l'objet primitif), puis sélectionnez la propriété Carte de points dans la catégorie Autres propriétés du menu Propriétés du gestionnaire d'objets. La propriété active automatiquement l'outil Peinture, auquel vous pouvez également accéder à partir du menu Outils. L'intensité peut être réglée sur la propriété via le paramètre Opacité. Sinon, vous pouvez lire les détails de cet outil de peinture et de la propriété carte d'influence de points elle-même ici.
Voici un pavé plat sur lequel une carte d'influence de points a été définie. Ci-dessus, vous pouvez voir le résultat d'une simulation de fumée pour cet objet.
Partout où la valeur 100% est stockée dans la carte de points, l'effet complet de l'émetteur Pyro peut prendre effet. Les zones ayant moins de poids dans la carte de points produiront moins de gaz. Partout où la carte de points contient 0 %, il n'y a plus de génération de Pyro. Pour que cela fonctionne, vous devez encore assigner correctement la carte de points créée dans la propriété Émetteur Pyro. Par exemple, dans l'image ci-dessus, les options Température et Carburant ont été désactivées afin que seule la Densité soit générée (pour la fumée, la brume, le brouillard, etc.).
Dans la section Densité des paramètres, vous trouverez également la possibilité d'affecter la carte de points à une carte de densité par glisser-déposer directement à partir du gestionnaire d'objets. Comme on peut le voir dans la moitié supérieure de l'image, la génération de fumée ne se produit plus que dans les zones de l'objet qui contiennent des valeurs supérieures à 0 % dans la carte des points.
Le même principe s'applique à la génération de la température et du combustible dans la propriété Émetteur Pyro. Étant donné qu'un objet peut avoir plusieurs cartes de points, l'utilisation de cartes de points individuelles pour contrôler toutes les propriétés de l'émetteur ne pose pas de problème.
L'utilisation de champs dans une carte d'influence de points offre d'autres possibilités.
En outre, vous trouverez dans chaque propriété Carte de points une option permettant d'utiliser également des objets de champ. Par exemple, dans l'image ci-dessus, un champ linéaire a été utilisé pour produire une courbe de pondération parfaite sur la largeur de la boîte plate. En conséquence, la simulation se traduit par une transition parfaite de l'intensité de la fumée simulée. La seule condition préalable est que la densité de points sur l'objet soit aussi uniforme et fine que possible afin de pouvoir reproduire toutes les variations de la carte des sommets ou de l'intensité du champ.
Par ailleurs, les cartes de points peuvent également être utilisées avec les splines si vous souhaitez faire varier les propriétés de l'émetteur le long de la spline. N'oubliez pas non plus que sur la propriété Emetteur Pyro, il est essentiel d'activer l'option Emetteur Surface pour qu'il y ait un volume en forme de tube autour de la spline que l'Emetteur peut utiliser. Vous en apprendrez davantage à ce sujet dans la section suivante.
À gauche, vous pouvez voir un gros plan de la spline utilisée comme émetteur. Le cercle en haut marque le point de la spline qui a été pondéré à 100% dans la carte d'influence de points. À gauche, le résultat de la simulation, qui produit de la fumée et de la chaleur uniquement au sommet de la spline.
Comme pour la carte de points décrite ci-dessus, un objet peut également avoir plusieurs propriétés de couleur de points qui peuvent également être ajoutées à l'objet émetteur en tant que propriétés dans le gestionnaire d'objets. Ce type de propriété se trouve également dans le menu Propriétés du gestionnaire d'objets sous Autres propriétés et permet d'attribuer des valeurs de couleur RVB et des valeurs alpha à chaque point d'une géométrie.
Les couleurs et les valeurs alpha peuvent être appliquées individuellement à l'aide de l'outil Peinture, qui se trouve dans le menu Outils. À cette fin, vous pouvez sélectionner directement dans l'outil Peinture via son mode Peinture si seules les valeurs RVB (couleurs), seules les valeurs alpha ou les deux doivent être peintes en même temps. En outre, il est également possible d'utiliser les objets Champ directement dans la propriété Couleur de points pour créer des dégradés précis ou des valeurs alpha animées aléatoires, par exemple. Pour les dégradés de couleurs complexes ou les structures fines, il doit y avoir suffisamment de points sur l'objet, répartis aussi uniformément que possible. Les valeurs de couleur et d'alpha ne peuvent être peintes et enregistrées que sur l'objet où des points sont présents. Les couleurs entre les points sont créées par simple interpolation.
Si une propriété de couleur de points est présente sur l'objet Émetteur Pyro, elle peut être évaluée pour générer de la densité, de la température ou du carburant, et peut également être affectée à la transparence de la couleur et de la densité en tant que carte de couleur. L'image suivante en donne un exemple.
A gauche, vous pouvez voir la rubrique des champs de la propriété Couleur de points. Un champ linéaire en mode dégradé de couleurs a été utilisé pour mélanger les différentes couleurs de manière homogène. En outre, les valeurs alpha ont été définies de manière à ce que l'opacité des couleurs diminue au milieu du dégradé. À droite, le résultat est obtenu après avoir assigné la propriété Couleur des points en tant que Carte de couleur dans la propriété Émetteur Pyro. Seules les simulations de densité et de couleur ont été activées.
Utilisation de la propriété Couleur des points comme carte de couleurs dans la propriété Émetteur Pyro.
Comme indiqué à plusieurs reprises, les objets émetteurs doivent être des volumes fermés pour que la propriété Émetteur Pyro fonctionne de manière fiable. Cependant, pour les objets très fins (plus fins que la taille du voxel des paramètres de la scène Pyro dans l'objet Sortie Pyro), en présence de trous, pour les objets unilatéraux et également pour les splines, l'option Surface de la propriété Émetteur Pyro peut également être utilisée. Cela vous permet de définir une distance autour de la spline ou des polygones, ce qui permet à l'émetteur de créer des éléments Pyro à cet endroit. Cette option est déjà active par défaut, de sorte que tout objet spline ou polygone peut être utilisé directement comme émetteur Pyro.
Vous pouvez voir ici deux exemples d'utilisation de l'option Émetteur de surface. A gauche, une couche simple est en train de brûler, dont certains polygones ont également été supprimés. À droite, une simple spline hélicoïdale génère de la vapeur.
Toutefois, outre les exemples ci-dessus, cette option peut également être combinée avec des objets fermés, par exemple, si vous souhaitez augmenter le volume de l'émetteur au-delà des limites de l'objet assigné.
Ici, un objet Branche (trouvé dans le Navigateur de Ressources) a été défini avec la propriété Emetteur Pyro comme émetteur. À droite, l'option Émetteur surface a été activée en plus avec une petite distance de seulement 0,7 cm.
Comme le montre la figure ci-dessus, l'agrandissement de l'émetteur à l'aide de l'option Emetteur Surface peut également permettre de rendre la simulation visible à l'extérieur d'un objet. Dans le cas spécifique de la branche en feu, cela signifie que les flammes semblent également lécher le pourtour de la branche et ne pas seulement sortir par le sommet.
La simulation de fumée et de feu peut également interagir avec des objets qui ont d'autres propriétés de simulation. Par exemple, la fumée peut entrer en collision avec des objets qui ont une propriété Collision du groupe propriétés de simulation.
Ici, deux exemples montrent comment la fumée interagit avec un objet de simulation de collision.
De même, la simulation de fumée ou de feu peut interagir avec les corps souples, par exemple, comme le montre l'exemple suivant. Là, une sphère bleue corps souples tombe sur le plan, repoussant la fumée. Les interactions entre la simulation Pyro et, par exemple, une simulation de corps souples ou de vêtements peuvent également être contrôlées par le paramètre Facteur de force du fluide de l'objet Pyro.
Interaction entre un objet corps souples (sphère bleue) et de la fumée.
Par défaut, toutes les simulations Pyro de votre scène interagissent entre elles. Ainsi, si deux objets émetteurs de fumée sont proches l'un de l'autre, leur fumée pourra se mélanger et modifier la dynamique de la simulation. Cela peut également entraîner un mélange des différentes valeurs de couleur de la fumée, qui peut être contrôlé via l'option Remplacer dans les paramètres de couleur des propriétés Émetteur Pyro. Si le Remplacement est activé pour toutes les Propriétés de l'émetteur Pyro (paramètre par défaut), l'ordre des objets dans le gestionnaire d'objets est pris en compte. L'image suivante en donne un exemple.
Différents résultats sont obtenus lorsque l'on mélange des couleurs de densité différente. Au centre, l'option d'écrasement a été activée, à droite, elle a été désactivée.
L'image ci-dessus montre le point de départ de la scène à gauche. Trois cubes distincts, chacun ayant une longueur d'arête de 20 cm, ont été placés les uns à côté des autres de manière à ce que les cubes voisins se chevauchent de 10 cm. Les trois cubes ont des étiquettes Émetteur Pyro, avec seulement Densité et Couleur actives sur chacun d'entre eux. Le cube de gauche utilise le rouge, celui du milieu le vert et celui de droite le bleu comme couleur pour la densité. Le cube rouge émettant de la fumée est le premier objet avec la propriété Émetteur Pyro dans le gestionnaire d'objets. Le deuxième objet Pyro est le cube avec la fumée verte. Enfin, le gestionnaire d'objets émet une fumée bleue.
Par défaut, l'option Remplacer est active sur toutes les propriétés Émetteur Pyro et conduit au résultat montré au centre de l'image. Il n'y a pas de mélange significatif de couleurs. Au contraire, en raison de l'ordre des objets dans le gestionnaire d'objets, la fumée bleue masque la fumée verte et la fumée verte masque la fumée rouge. Plus un objet doté d'une étiquette d'émetteur pyro est bas par rapport à d'autres émetteurs pyro dans le gestionnaire d'objets, plus les simulations pyro situées au-dessus de lui seront masquées par la couleur.
Les couleurs résultantes sont calculées de manière très différente lorsque l'option Remplacer est désactivée. Dans ce cas, l'ordre des objets portant des Propriétés Émetteur Pyro n'a plus d'importance et toutes les couleurs de densité se mélangent, comme on peut le voir à droite dans l'image ci-dessus. En mélangeant les couleurs de fumée, des tons jaunes et orange apparaissent, ainsi que des couleurs violettes et turquoises.
Toutefois, si vous souhaitez effectuer des simulations indépendantes, par exemple en empêchant le mélange des couleurs des pyro-émetteurs voisins ou en utilisant des paramètres de simulation différents pour les pyro-émetteurs, vous pouvez utiliser des objets de scène de simulation différents. Vous en trouverez ici un exemple. Vous pouvez également consulter les relations entre la propriété Émetteur Pyro, l'objet Sortie Pyro et les objets de la scène de simulation ici.
Il peut également être très intéressant d'animer des objets en même temps que la simulation. Pensez, par exemple, aux étincelles portées vers le haut dans les flammes d'un feu de camp ou aux bulles d'air qui s'élèvent sous l'eau. Pour de tels effets, les simulations stockées peuvent être très utiles. Elles peuvent être créées à l'aide de l'objet Sortie Pyro.
Pour ce faire, créez d'abord votre simulation comme d'habitude avec un objet Émetteur(Propriété Émetteur Pyro) et l'objet Sortie Pyro. Si vous êtes satisfait de la simulation, activez les canaux habituels pour la densité, la température et la vélocité sur l'objet Sortie Pyro, par exemple. Pour ce faire, définissez le mode de chacune de ces propriétés dans l'onglet Objet de l'objet Sortie Pyro sur A l'export. Enfin, appuyez sur le bouton cache dans l'onglet Cache et faites en sorte que les fichiers du cache soient enregistrés dans un nouveau dossier sous le nom souhaité. Comme les fichiers cache peuvent devenir très volumineux, vous ne devriez vraiment activer que les canaux de simulation dont vous avez réellement besoin. En outre, n'enregistrez en tant que cache que les images d'animation dont vous aurez également besoin plus tard, par exemple pour le rendu. Vous pouvez le définir en utilisant les valeurs Première image et Dernière image dans l'onglet Projet des préférences du projet.
Les canaux contenant les informations relatives à la densité et à la température peuvent être utilisés ultérieurement pour le rendu, car le matériau Redshift Volume les utilise. Cependant, pour le contrôle des mouvements des objets, les informations sur la vitesse sont particulièrement utiles ici, car elles consistent en des vecteurs avec lesquels la vitesse et la direction des mouvements du flux dans le gaz simulé sont enregistrées.
En principe, après avoir calculé le cache, vous pouvez maintenant fermer la scène de simulation et récupérer un objet Volume importé à partir du menu Volume dans une nouvelle scène. Dans le champ Nom du fichier, définissez le premier fichier .vdb de la séquence de cache précédemment enregistrée. Dans une zone d'information du chargeur de volume, vous verrez maintenant les noms des canaux de simulation contenus dans les fichiers. Désactivez les options pour la densité et la température, car nous ne sommes intéressés que par la vitesse. Les paramètres de la partie inférieure de la boîte de dialogue peuvent être utilisés, par exemple, pour mettre à l'échelle les vecteurs de vitesse( paramètreFacteur ) ou pour ajuster la vitesse de lecture( paramètre Vitesse ). Le numéro de l'image à partir de laquelle la simulation doit commencer dans cette nouvelle scène peut également être spécifié ici(paramètre Décalage)
Dans l'étape suivante, nous avons besoin d'un Générateur de Volume, que vous basculez vers le volume Type Vectoriel et ensuite liez le Volume importédans sa liste d'objets. Ajustez la taille du voxel à l'échelle de votre simulation Pyro. Ainsi, si l'émetteur de la scène de simulation originale était une sphère d'un rayon de 10 cm, par exemple, essayez une taille de voxel comprise entre 2 cm et 0,5 cm. Le générateur de volume génère maintenant pour nous un champ de vecteurs à maillage serré dont la longueur et la direction sont contrôlées par la vitesse de la simulation. La figure suivante résume à nouveau ces étapes.
Un chargeur de volume importe les données de simulation (à gauche), qui sont ensuite traitées par un générateur de volume (à droite).
Il est maintenant temps d'appeler un objet Champ de force et d'y lier le générateur de volume. Les vecteurs de lecture du générateur de volume acquièrent ainsi une signification, à savoir celle de vecteurs de vitesse, et peuvent donc agir sur les particules. Pour le type de vitesse, sélectionnez Vélocité absolue avec une intensité de 100. De cette façon, les vitesses simulées peuvent être transférées avec précision aux particules. Maintenant, tout ce dont nous avons besoin, ce sont des particules.
Pour ce faire, vous pouvez, par exemple, créez unémetteur dans le menu Simuler et déplacez le approximativement vers le point d'origine de la simulation. Ajustez également la rotation et la taille de l'émetteur afin qu'il soit aussi centré que possible sur l'emplacement de l'émetteur Pyro d'origine. Assurez-vous que vous disposez d'un nombre suffisamment important de particules générées et limitez leur durée de vie de manière raisonnable, en fonction de la longueur de votre séquence de simulation. De plus, laissez la vitesse des particules à 0 cm. Les vitesses doivent provenir entièrement de l'objet du champ de force. L'image suivante résume également cette étape.
Un objet Champ de force interprète les vecteurs du Générateur de volume comme des vitesses (à gauche), qui peuvent ensuite être transférées aux particules d'un Émetteur standard (à droite).
Si vous exécutez maintenant la ligne de temps, vous verrez comment les particules sont d'abord créées dans la zone de l'émetteur, puis transportées dans la zone de la simulation précédente. L'image suivante montre ces sections.
La séquence d'images montre un exemple de la façon dont les particules simples sont mises en mouvement par les vecteurs de vitesse de la simulation chargée.
Le lien avec la géométrie peut désormais être établi directement en subordonnant, par exemple, une petite sphère à l'objet Émetteur. Pour cela, ses options Afficher les objets et Rendre instances doivent être actives afin de voir les objets et en même temps économiser le plus de mémoire possible.
Cependant, vous êtes encore plus flexible si vous créez plutôt un objet MoGraph Cloneur et que vous y activez le mode Objet. L'émetteur peut ensuite être affecté à un objet dans le cloneur. Vous pouvez ainsi utiliser Multi-Instance en mode Instance, ce qui permet d'économiser encore plus de mémoire et d'être plus rapide que Instance de rendu.
En utilisant un objet clone, la géométrie peut être assignée aux particules d'une manière encore plus économe en mémoire. Ici, une petite sphère est devenue un objet enfant de l'objet Cloner.
Vous avez un peu plus de contrôle, par exemple sur l'alignement et la mise à l'échelle des particules, lorsque vous utilisez le système Thinking Particles. Ici, par exemple, vous avez également l'avantage que le volume d'un objet peut être utilisé comme émetteur, de la même manière que l'objet émetteur d'une propriété Emetteur Pyro. En outre, une grande partie de la configuration de la scène déjà décrite ci-dessus pour les particules standard peut être réutilisée. La principale différence réside dans la création des particules, qui doit se faire par le biais d'une petite configuration XPresso. Pour ce faire, nous commençons par créer un objet qui jouera le rôle d'émetteur. Dans notre cas, nous utilisons une primitive Sphère convertie de taille appropriée et nous lui attribuons une propriété XPresso, que vous trouverez dans le menu Propriétés du gestionnaire d'objets, dans le groupe Propriétés de programmation.
Dans le graph, nous utilisons un nœud Psource pour générer le nombre souhaité de particules. Dans le circuit également illustré dans la figure ci-dessous, le mode Shot est utilisé, générant exactement le nombre défini de particules par image d'animation. En comparant ce chiffre avec le numéro d'image actuel (par le noeud Temps), il est possible de contrôler la durée exacte et le nombre total de particules. Ici, par exemple, seules les particules de l'image 1 de l'animation sont créées. Le résultat du nœud de comparaison est une valeur booléenne qui est connectée à l'entrée de la source de particules.
Leur sortie est acheminée vers une position P dans le nœud de volume, qui est liée à notre sphère d'émission. En sélectionnant Type Interne en conjonction avec une valeur de profondeur appropriée, le nœud calculera les positions individuelles de toutes les particules injectées à l'intérieur de la sphère. Ces positions doivent ensuite être réécrites dans les particules générées. C'est la responsabilité du nœud P Définir les données, qui est alimenté d'une part par les particules de sortie du nœud P Source et les positions du nœud P Position Volumique. Ainsi, la génération des particules au moment voulu dans la sphère est déjà terminée. Il ne reste plus qu'à attribuer continuellement les vitesses de l'objet Champ de force aux particules.
Pour ce faire, créez un nœud de Passe P et connectez-le à un nœud d'objet P Force où notre objet Champ de force est assigné. Le circuit complet peut être vu dans la figure suivante.
Exemple Circuit XPresso pour créer des Thinking Particles dans le volume d'un objet, puis leur appliquer l'effet d'un objet Champ de force.
Encore une fois, dans cette configuration, un objet MoGraph Cloneur peut être utilisé pour peupler les particules avec des objets. Pour ce faire, utilisez à nouveau le mode Objet sur l'objet Cloneur. Cette fois, cependant, le groupe dans lequel les particules sont présentes doit être attribué comme objet. Comme nous n'avons pas créé d'affectation de groupe dans le circuit, toutes les particules se retrouvent automatiquement dans le groupe Tous. Vous pouvez trouver cela dans les paramètres de Thinking Particles, qui se trouvent dans le menu Simuler sous Thinking Particles. Une fois que vous avez fait glisser ce groupe Global dans le champ Object de l'objet Cloner, la connexion est établie et vous pouvez regrouper des objets sous l'objet Cloneur comme d'habitude pour les utiliser comme géométrie de particules.
Attribution du groupe Global des paramètres Thinking Particles à un objet clone.
À gauche, le rendu de l'éditeur des Thinking Particles clonées, à droite, le rendu avec la simulation.
L'objet Sortie Pyro et la propriété Émetteur Pyro contiennent déjà divers paramètres qui peuvent être utilisés, par exemple, pour simuler un mouvement de vent et diverses turbulences de l'air. Étant donné que nombre de ces propriétés peuvent également être animées au moyen d'images clés ou de nœuds, il existe déjà un large arsenal d'outils permettant d'influer sur la simulation. Cependant, lorsqu'il s'agit d'apporter des changements locaux à la simulation, les objets Force peuvent être utiles, que vous trouverez dans le menu Simuler sous Forces.
Simulation déformée par les objets de la Force.
Ces objets de force peuvent être utilisés dans le processus :
En outre, les zones dans lesquelles ces forces doivent agir peuvent être limitées par les objets du champ, de sorte que, par exemple, le vent n'affecte que l'extrémité supérieure d'un panache de fumée ascendant. Des informations détaillées sur ces objets de force sont disponibles ici.
Comme la densité et la température peuvent également être définies négativement (via les paramètres Ajouter densité et Ajouter Température de la propriété Émetteur Pyro), des interactions intéressantes entre plusieurs Émetteur Pyros au sein d'une même scène de simulation Pyro sont également possibles. Par exemple, un objet peut émettre une densité et une température négatives, ce qui permet de dissiper et d'atténuer la chaleur et la densité croissantes d'un autre émetteur. L'image suivante montre un exemple. La sphère supérieure génère alors des propriétés négatives, qui sont pressées sur la sphère inférieure au moyen d'une vitesse dirigée vers le bas. La sphère inférieure génère une densité et une température normales, ce qui lui permet d'être amortie et refroidie lorsque les deux flux gazeux se rencontrent.
La structure interne de la simulation Pyro avec ses voxels permet également d'autres combinaisons passionnantes. Par exemple, vous pouvez stocker des propriétés individuelles, telles que la densité ou la température, dans la mémoire vive de l'objet Sortie Pyro si vous activez les options correspondantes dans l'onglet Objet. Si vous groupez maintenant l'objet Sortie Pyro sous un Mailleur de volume, les propriétés Pyro stockées en RAM seront remplies de voxels et converties en polygones. Vous avez encore plus de contrôle sur cette conversion si vous regroupez l'objet Sortie Pyro sous un Générateur de volume et que vous le placez ensuite sous un Mailleur de volume. Ainsi, au niveau du générateur de volume, vous pouvez également utiliser sa taille de voxel pour définir la densité de subdivision au niveau de la maille du polygone. Veuillez noter que ces voxels ne couvrent que les régions de gaz les plus denses. Le gaz finement ventilé, sa densité ou sa température ne sont donc pas pris en compte par défaut. Vous pouvez influer sur ce paramètre par le biais du seuil d'intervalle de voxel dans le Mailleur de volume.
A gauche, vous pouvez voir une simulation de densité pour laquelle le stockage des informations de densité dans la RAM a été activé dans l'objet Sortie Pyro (Densité marqué avec 'Activé'). Sur la droite, cet objet Sortie Pyro a été regroupé sous un Générateur de volume et un Mailleur de volume. Des polygones sont créés dans la zone de densité, auxquels on peut appliquer des matériaux comme d'habitude et peuvent également être rendus sans Redshift, si nécessaire.
En outre, les informations sur la couleur de la densité peuvent également être utilisées pour ce maillage. Cela nécessite un petit tour de passe-passe.
Tout d'abord, configurez votre simulation Pyro comme d'habitude. Pour utiliser des couleurs, activez l'option Couleur dans les paramètres de densité de la propriété Émetteur Pyro. Dans l'exemple ci-dessous, deux sphères ont reçu des propriété Emetteur Pyro de couleurs différentes et ont été animées en position pour que la fumée des deux émetteurs se mélange davantage.
À gauche, vous pouvez voir la simulation Pyro avec la fumée de deux sphères, chaque sphère produisant une fumée de couleur différente. À droite, vous pouvez voir le résultat calculé sous forme de maillage, où vous pouvez également voir les différentes couleurs.
Pour pouvoir traiter les couleurs simulées séparément, nous avons besoin des couleurs sous forme de fichiers cache RAM ou .vdb. Pour que le maillage fonctionne en utilisant un Générateur de volume et un Mailleur de volume, nous avons également besoin des informations relatives à la densité . Nous procédons donc de manière à dupliquer l'objet Sortie Pyro déjà existant. Dans le premier objet de sortie Pyro, nous activons uniquement le calcul de la densité à l'exportation. Sur le deuxième objet Sortie Pyro, nous n'activons que l'option Couleur A l'export. Nous utilisons ensuite les fonctions de cache de ces objets et les fichiers de cache y sont calculés respectivement. Veillez à stocker des séquences de cache distinctes pour la densité et la couleur, c'est-à-dire à utiliser des emplacements et des noms différents. Un objet Sortie Pyro ne lit alors que la densité et l'autre ne lit que les couleurs simulées des fichiers .vdb.
Nous avons besoin de deux objets de sortie Pyro au total. Le premier ne stocke que la simulation de la densité sous forme de séquence vdb, l'autre objet Sortie Pyro ne crée qu'une séquence vdb pour les couleurs simulées des tags Émetteur Pyro.
Créez maintenant un Générateur de volume et groupez-y l'objet Sortie Pyro, qui lit le cache de densité. Utilisez un Mailleur de volumes par-dessus le Générateur de volumes pour que la géométrie soit calculée. Si nécessaire, ajustez la taille des voxels sur le générateur de volume jusqu'à ce que vous soyez satisfait du niveau de détail de la représentation.
Ajoutez maintenant une propriété Couleur de points au Mailleur de volume. Vous trouverez cette propriété dans le gestionnaire d'objets sous Propriétés/Autres. Dans la section Champsde cette propriété, vous pouvez maintenant assigner l'objet Sortie Pyro qui lit le cache de couleur. Ces informations de couleur sont ainsi attribuées aux différents points du Mailleur de Volume.
Une propriété Couleur des points lit les informations de couleur de l'objet Pyro et les transfère aux points du maillage volumique.
Pour pouvoir utiliser les couleurs de la propriété Couleur des points dans un matériau Redshift, nous utilisons un nœud Vertex Attribute. Dans le champ Attribute Name, il suffit de faire glisser la propriété Couleur des points depuis le gestionnaire d'objets.
Les couleurs des points de la propriété sont lues dans le matériau Redshift à l'aide d'un nœud Vertex Attribute et peuvent ensuite être utilisées comme couleur de base, par exemple.
Comme alternative à la méthode expliquée de stockage de deux séquences de cache vdb distinctes, vous pouvez également activer les deux objets Sortie Pyro pour les propriétés Densité et Couleur et ainsi avoir deux caches distincts créés dans la RAM. Cela fonctionne également avec la configuration décrite.
Les paramètres Pyro liés à l'onglet Scène Pyro de l'objet Sortie Pyro fournissent différents modes et qualités d'affichage de la simulation déjà dans les fenêtre de visualisation. Pour ce faire, il suffit d'utiliser l'un des modes d'affichage de l'ombrageOmbrage de Gouraud, Ombrage Rapide ou Ombrage Constant). Cependant, afin de rendre réellement la simulation avec Redshift, et ainsi, par exemple, pouvoir également l'éclairer vous-même ou même lui faire générer de la lumière, la simulation doit être disponible en tant que cache. Plusieurs options sont possibles :
Pour pouvoir suivre les étapes suivantes, vous devez avoir activé Redshift en tant que moteur de rendu dans les paramètres de rendu.
Si la simulation est disponible en RAM (les propriétés de l'objet souhaité ont été marquées avec Activé dans l'objet Sortie Pyro et la simulation a été exécutée une fois image par image), vous pouvez par exemple générer un matériau de volume via le menu Créer du Gestionnaire de Matériaux sous Redshift/Volume. Vous devez y saisir les noms des canaux de simulation Pyro activés (par exemple, Density, Temperature ou Color).
Il est encore plus pratique d'appliquer le matériau Pyro Volume , déjà bien réglé. La saisie des canaux de simulation typiques que sont la density et la temperature s'y fait automatiquement. En outre, la simulation réaliste Black Body pour les couleurs de la distribution de la température est utilisée par défaut.
Dans le matériau RS Volume ou Pyro Volume, la propriété Scatter représente la densité du volume rendu et la propriété Emission, qui génère de la lumière, représente la température de la simulation. Ce sont déjà les deux caractéristiques les plus importantes d'une simulation Pyro pour le rendu. Le matériau RS Volume ou Pyro Volume peut alors être affecté à l'objet Sortie Pyro et vous pouvez effectuer le rendu de la simulation directement.
Affectations typiques de densité et de température d'une simulation Pyro dans un nœud RS Volume.
Pour afficher le flou de mouvement dans cette configuration, une propriété Redshift Object doit être assignée à l'objet Sortie Pyro. Vous y activez l'évaluation du vecteur de mouvement et entrez Velocity comme canal de simulation pour les vecteurs de vitesse dans la simulation dans le champ X. Utilisez la valeur Scale pour contrôler l'intensité du flou de mouvement. N'oubliez pas que le calcul du flou de mouvement doit également être activé dans les préréglages de rendu!
Si une simulation a été sauvegardée en tant que séquence .vdb (les propriétés de l'objet désiré ont été marquées sur l'objet Sortie Pyro avec A l'export et la simulation a été sauvegardée dans l'onglet Cache en appuyant sur le bouton Cache), un objet Volume Redshift est nécessaire, qui peut être trouvé dans le menu Volume si Redshift est le moteur de rendu actif (voir Paramètres de rendu).
Dans l'objet Redshift Volume, vous trouverez l'option de charger les fichiers .vdb. Pour ce faire, définissez d'abord le chemin d'accès au premier fichier de la séquence dans le champ Chemin d'accès, puis passez à l'onglet Animation de l' objet. Vous y trouverez le menu Mode où vous pouvez sélectionner, par exemple, le mode Simple. Cela signifie que la simulation enregistrée est automatiquement récupérée image par image lorsque vous effectuez le rendu d'une animation. Lorsque vous atteignez le dernier fichier de simulation de la séquence, cette lecture se termine automatiquement. Dans les autres modes disponibles, par exemple, la relecture de la simulation peut être déclenchée à ce stade. Appuyez ensuite sur le bouton Detect Frames pour compter la séquence de fichiers et saisir automatiquement leur numéro sur cette page de dialogue. Vérifiez la spécification de la Fréquence d'images pour vous assurer qu'elle correspond à la fréquence d'images utilisée dans votre scène. Sinon, une simulation chargée peut s'afficher plus rapidement ou plus lentement que la simulation initiale.
Après avoir défini le chemin d'accès à une séquence VDB (à gauche), sa lecture peut être contrôlée dans l'onglet Animation (à droite). En outre, la zone d'information indique les propriétés des objets contenus dans la séquence VDB.
Comme on peut le voir dans la figure ci-dessus, la liste des canaux montre quelles propriétés sont contenues dans les fichiers chargés. Ces termes peuvent ensuite être utilisés dans le matériau RS Volume pour définir les couleurs, la densité et l'éclat de la simulation pendant le rendu. Cette étape ne diffère pas du rendu d'une simulation en RAM décrit ci-dessus. Dans ce cas, cependant, leMatériau Redshift Volume est affecté à l'objet RS Volume.
Contrairement au rendu direct d'une simulation résidant dans la RAM, aucune propriété Redshift Object n'est nécessaire pour activer le rendu du flou de mouvement lors de l'utilisation de l'objet RS Volume. Vous trouverez les paramètres correspondants du flou de mouvement directement sur le RS Volume. Là aussi, il suffit d'entrer Velocity pour le canal X, à condition que la simulation chargée possède la propriété Vélocité (voir la zone d'information dans l'objet RS Volume).
Des informations détaillées sur l'objet Redshift Volume et le matériau Redshift Volume sont disponibles ici.