Héritage des matériaux

Flux de particules impose une limite spécifique à l'utilisation de matériaux dans les événements. En particulier, un matériau affecté à un événement, que ce soit via un opérateur Matériau standard ou comme un paramètre de l'opérateur Instance de forme, ne suit pas les particules d'un événement à l'autre. Cela diminue la flexibilité globale d'un système Flux de particules et requiert le recourt à des solutions de contournement : soit affecter un opérateur Matériau à l'événement global, soit affecter un opérateur Matériau à tous les événements concernés.

Particle Flow améliore la fonctionnalité des événements de manière à rendre plus efficace le traitement global des matériaux dans un système. Elle ne permet toujours pas aux particules de transférer leur matériau entre les événements, mais elle offre un ensemble d'outils qui simplifient l'affectation des matériaux et leur héritage.

Matériaux paramétriques et synthétiques

Dans le contexte de l'affectation de matériaux aux événements Flux de particules, un matériau peut être classé comme paramétrique ou synthétique.

Un matériau est paramétrique lorsque vous utilisez un des opérateurs de matériau standard. L'opérateur dispose d'un bouton pour définir un matériau dans l'éditeur de matériaux. Ce matériau est transmis comme une référence à l'événement contenant l'opérateur Matériau à utiliser par les particules lorsqu'elles se trouvent dans cet événement. De nouveau, ce matériau est paramétrique ; il est affecté en tant que paramètre d'un opérateur Matériau.

Un matériau est synthétique lorsque vous utilisez, par exemple, l'opérateur Instance de forme standard. Lorsque l'option Acquérir matériau est activée, l'opérateur utilise le matériau affecté à la géométrie de référence et l'attribue à l'événement courant. En outre, si l'opérateur fait référence à un groupe d'objets comme un objet de géométrie de particule, il collecte tous les matériaux du groupe et crée un matériau multi/sous-objet à affecter à l'événement. Dans ce cas, un nouveau matériau est synthétisé à partir d'autres matériaux.

Si vous cliquez sur la zone de titre d'un événement global, vous pouvez voir les paramètres applicables à l'ensemble du système de particules Flux de particules. Vous pouvez maintenant aussi cliquer sur la zone de titre d'un événement local pour accéder à des outils relatifs à la gestion des matériaux et voir le matériau affecté à l'événement.

Quelques exemples

Ouvrez le fichier d'exemple MaterialInheritance01.max (fourni avec les fichiers de didacticiel du dossier ParticleFlowSamples) pour voir la façon dont fonctionnent les outils de matériaux. La scène comporte un système Flux de particules avec quatre événements. Elle ne contient pas d'opérateurs Matériau ; les couleurs des particules dans la fenêtre sont définies par un opérateur Afficher différent dans chaque événement. De cette façon, les changements de couleur permettent de voir quand les particules changent d'événement.

A présent, ajoutez un opérateur Matériau statique à l'événement 01, puis affectez le matériau multi/sous-objet de l'éditeur de matériaux (premier emplacement) en tant qu'instance (mode par défaut) et ajustez les paramètres Matériau statique pour parcourir les sous-matériaux. Votre carte d'événements ressemblera à ceci :

Si vous exécutez l'animation maintenant, vous verrez que, au début, les particules ont toutes des couleurs différentes, mais que, d'un seul bloc, elles adoptent ensuite une couleur différente. Cela est dû au fait que les trois événements suivants n'ont aucun opérateur Matériau et utilisent donc la couleur Afficher dans les fenêtres.

Cliquez sur la barre de titre de l'événement 01 pour en afficher les paramètres, puis cliquez sur le bouton Matériaux en aval. Flux de particules signale qu'il a mis à jour un matériau dans trois événements. Relancez l'animation : les couleurs des particules sont désormais cohérentes dans tous les événements. De même, si vous sélectionnez les autres événements, vous pouvez observer que le bouton Matériau courant indique le même matériau que dans le premier événement.

Ensuite, consultez l'exemple plus complexe MaterialInheritance02.max (fourni avec les fichiers de didacticiel du dossier ParticleFlowSamples). Cet exemple comporte deux flux de particules convergeant en un flux commun. Les événements de départ ont des matériaux différents définis par des opérateurs Matériau statique. Une fois que les particules entrent dans le second événement (Evenement 02), elles perdent leurs matériaux. Voyons ce qu'il est possible de faire dans cette situation.

Sélectionnez l'événement 01, puis cliquez sur le bouton Matériaux en aval. Vous pouvez consulter le matériau attribué aux événements 02, 03 et 04. Lancez la lecture de l'animation : tous les événements en aval de l'événement 01 ont hérité du matériau Vert. Cela ne fonctionne pas correctement, car les particules de l'événement 05 ont eux aussi reçu le matériau Vert. Il faut corriger ce problème d'une façon ou d'une autre. L'objectif ici est de permettre aux particules provenant des deux événements d'émission de particules de conserver leurs matériaux respectifs.

Essayez d'abord ceci : sélectionnez l'événement 05 (l'événement de début avec le matériau bleu), puis cliquez sur les Matériaux en aval. Vous vous souviendrez peut-être que lorsque vous avez cliqué sur le bouton dans l'événement 01, le logiciel a signalé avoir mis à jour les matériaux dans 3 événements. A présent, avec l'événement 05, il signale que tous les événements ont des matériaux valides. Ce message signifie que les matériaux dans les événements en aval n'ont pas été modifiés. Si vous exécutez l'animation ou examinez les événements en aval, vous verrez qu'ils ont toujours le matériau Vert de l'événement 01. Pourquoi ?

Lorsque vous cliquez sur le bouton Matériaux en aval, le plug-in cherche tous les événements en aval de l'événement courant et, dans chaque événement en aval, il effectue une mise à jour des matériaux. Or, un matériau dans un événement est mis à jour en fonction de ses paramètres d'héritage de matériaux. Si le type d'héritage est Aucun ou si l'événement possède son propre opérateur contenant un matériau (un opérateur Matériau ou un opérateur Instance de forme avec acquisition de matériau), le matériau n'est pas mis à jour dans l'événement, car il est déjà défini. Si le type d'héritage est Priorité la plus élevée, l'événement cherche ses événements en amont (les événements en amont de l'événement 02 sont les événements 01 et 05), il en vérifie la priorité de matériau et hérite un matériau de l'événement jouissant de la priorité la plus élevée. Ici, les événements 01 et 05 ont la même priorité de matériau : 0 (zéro). Le résultat est donc ambigu : l'événement 02 peut choisir le premier événement en amont qu'il trouve. Pour forcer l'héritage de l'événement 05, réglez sur 1 la priorité de matériau de l'Evénement 05, puis cliquez de nouveau sur le bouton Matériaux en aval. Vous pouvez voir que les événements en aval utilisent maintenant le matériau Bleu.

L'objectif n'est pas encore atteint. Les particules de l'événement 01 changent leur matériau de Vert en Bleu lorsqu'ils passent à l'événement 02. Il faut donc trouver une autre solution.

Le dernier type d'héritage possible est Combiner matériaux. C'est le type à utiliser pour propager correctement les matériaux en aval. Sélectionnez l'événement 02 et configurez Héritage sur Combiner matériaux. Cliquez ensuite sur le bouton Matériau de l'événement courant pour obtenir un matériau combiné des événements situés en amont. Si vous regardez le matériau courant de l'événement 02, il ne s'agit ni de Vert ni de Bleu, mais d'un nouveau matériau portant un nom tel que Matériau 10. Si vous faites glisser le matériau vers l'éditeur de matériaux, vous pouvez voir qu'il s'agit d'un matériau multi/sous-objet avec un seul sous-matériau appelé Bleu.

Pourquoi ? Les événements 01 et 05 ont tous deux un matériau standard, celui de l'événement 05 ayant une priorité plus élevée en raison des paramètres des événements. Etant donné que ces matériaux sont des matériaux standard (et non des matériaux multi/sous-objet), ils tentent tous deux d'allouer le premier emplacement du matériau multi/sous-objet synthétique de l'événement 02. Toutefois, l'événement 05 prévaut puisqu'il a une priorité plus élevée.

Pour résoudre la collision de matériaux, il faut ajuster les matériaux soit dans l'événement 01 soit dans l'événement 05. Voici comment faire : sélectionnez l'opérateur Matériau statique dans l'événement 05 et définissez Décalage ID sous-matériau sur 1 (au lieu de 0 la valeur par défaut). Notez que l'option Affecter ID matériau est activée automatiquement (pour une raison expliquée plus loin), mais vous devez également activer l'option Afficher dans fenêtre pour voir l'effet du matériau dans la fenêtre. Notez également que le nom dynamique de l'opérateur n'est plus Matériau statique 02 (Bleu), mais Matériau statique 02 (Bleu >> 1), ce qui indique que le décalage d'identificateur a été appliqué.

Sélectionnez l'événement 05 et examinez le matériau indiqué dans le bouton Matériau courant (faites-le glisser vers l'éditeur de matériaux). Le matériau est un véritable matériau multi/sous-objet avec deux sous-matériaux : le premier emplacement est vide, le second est occupé par le matériau Bleu. Il est désormais possible de combiner les matériaux des événements 01 et 05 sans collision.

Sélectionnez l'événement 02, puis cliquez sur le bouton Matériau de l'événement courant. Examinez le matériau dans le bouton Matériau courant : le matériau combiné comporte deux sous-matériaux, Vert et Bleu. Cliquez sur le bouton Matériaux en aval pour propager ce matériau vers les événements 03 et 04.

Si vous exécutez l'animation à présent, vous constaterez encore une divergence par rapport aux particules provenant de l'événement 01. Celles-ci deviennent bleues une fois qu'elles quittent l'événement 01. Pour résoudre ce problème, vous devez activer les options Affecter ID matériau et Afficher dans Matériau statique 01 (Vert). Bien que le matériau Vert n'ait pas de sous-matériaux, les index de sous-matériau sont nécessaires car, par la suite, les particules quittent l'événement et sont gérées par les matériaux multi/sous-objet.

Interface

Cette section décrit les commandes d'héritage de matériaux accessibles en cliquant sur la barre de titre d'un événement, ainsi qu'un paramètre supplémentaire, Décalage ID sous-matériau, ajouté aux opérateurs qui utilisent des matériaux.



Zone Héritage des matériaux

Hériter
Définit la façon dont un matériau est attribué à un événement courant sur la base des événements en amont et la manière dont l'événement courant peut influer sur les matériaux en aval. Choisissez l'une des options de la liste déroulante :
  • Aucun L'événement n'hérite d'aucun matériau des événements en amont.
  • Priorité la plus élevée Parmi tous les événements immédiats en amont, choisit celui qui a la plus grande priorité et extrait les matériaux de cet événement.
  • Combiner matériaux Synthétise un matériau multi/sous-objet à partir des matériaux des événements en amont. En cas de collision entre différents matériaux et sous-matériaux, l'entité de plus haute priorité prévaut.
Priorité des matériaux
Définit la priorité utilisée par les options d'héritage Priorité la plus élevée et Combiner matériaux (voir ci-dessus).
Remarque : si un événement contient un opérateur de type Matériau, l'événement n'hérite pas des matériaux des événements en amont, quelle que soit l'option de type d'héritage choisie.

Zone Mettre à jour le matériau

Cette zone contient des outils permettant de définir des matériaux dans les événements Flux de particules.

Matériau de l'événement courant
Met à jour le matériau de l'événement courant d'après les matériaux des événements en amont.
Matériaux en aval
Met à jour les matériaux de tous les événements en aval.
Matériaux de tous les événements
Met à jour les matériaux de tous les événements dans tous les systèmes PFlow de la scène.
Matériau courant
Affiche le matériau utilisé par l'événement. Cette propriété est en lecture seule ; vous pouvez faire glisser un matériau de ce bouton vers l'éditeur de matériaux pour l'examiner, mais vous ne pouvez pas y déposer un matériau provenant de l'éditeur de matériaux.

Paramètre supplémentaire : opérateurs Matériau/Groupe d'émission de particules/Instance de forme

Décalage ID sous-matériau
En cas d'héritage de matériaux avec un matériau multi/sous-objet, les opérateurs Matériau, l'opérateur Groupe d'émission de particules et l'opérateur Instance de forme ajoutent cette valeur à l'ID de matériau pour créer un ID de sous-matériau. Cet ID est utilisé par Flux de particules afin de déterminer les sous-matériaux à hériter et de les appliquer aux particules de cet événement, en fonction de l'ID de sous-matériau contenu dans le matériau.