Opérateur Cache

L'opérateur Cache enregistre et stocke l'état des particules dans la mémoire. Cette fonctionnalité s'avère très utile avec des systèmes de particules volumineux ou complexes, lorsque la lecture et, en particulier, le retour en arrière, sont lents en raison de la grande quantité de données à traiter.

Lorsque le cache est actif, la première fois que vous lisez ou accédez à une image, le mouvement des particules précédant et incluant cette image est calculé plus enregistré dans la mémoire cache. Par la suite, l'image ou les images précédentes sont lues en utilisant les données stockées dans la mémoire cache plutôt qu'en recalculant l'action des particules. Lorsque la mise en cache est activée, le système de particules ne doit être calculé qu'une fois par image. Par la suite, la lecture et le déplacement entre les images sont nettement plus rapides.

Pour mettre en cache le flux complet, ajoutez l'opérateur Cache à l'événement global. Pour mettre en cache un événement local individuel, ajoutez-lui un opérateur Cache.

Pour déterminer la meilleure façon de mettre en oeuvre la mémoire cache dans votre système de particules, activez Vue particule Suivi mise à jour Progression mise à jour, puis exécutez l'animation ou accédez à une image relativement éloignée de l'image actuelle. Observez le diagramme des particules : recherchez les événements comportant des actions qui se reflètent plus longtemps qu'une fraction de seconde, ou des événements caractérisés par une activité plus intense que les autres. Pour tous ces événements, la mise en cache peut offrir un intérêt.

Remarque : N'utilisez qu'un seul opérateur cache par événement; si vous en employez deux, réservez-en un pour les fenêtres, l'autre pour le rendu. De même, n'utilisez pas les opérateurs Cache global et local dans le même flux, sauf si l'un est défini pour les fenêtres et l'autre pour le rendu.
Conseil : lorsque la lecture en temps réel n'est pas assez rapide, vous pouvez utiliser l'opérateur Cache pour l'accélérer. Pour de meilleurs résultats, choisissez la même valeur pour l'étape d'intégration de la fenêtre et pour la vitesse de lecture en temps réel, puis configurez l'échantillonnage de la mémoire cache sur Etape intégration. Par exemple, si la vitesse de lecture en temps réel est définie sur 1/4x, l'étape d'intégration de la fenêtre doit également être définie sur 1/4 d'image et, pour le paramètre Echantillonnage de l'opérateur Cache, choisissez Etape intégration. De la sorte, comme la lecture en temps réel affiche quatre fois plus d'images par seconde et que l'opérateur Cache a enregistré quatre fois plus d'images par seconde, lecture et opérateur Cache sont synchronisés. Si la vitesse de lecture en temps réel est définie sur 2x ou sur 4x, configurez l'étape d'intégration de la fenêtre sur Image.

Procédures

Exemple : utilisation de l'opérateur Cache :

  1. Lancez ou réinitialisez 3ds Max, puis ajoutez un système Particle Flow.
  2. Ouvrez Vue particule.
  3. Dans le menu Options choisissez la rubrique Suivi mise à jour, puis activez l'option Progression mise à jour.

    Ainsi pouvez-vous contrôler le calcul du système de particules en sélectionnant les actions dans Vue particule à mesure que le système les exécute.

  4. Dans Vue particule, ajoutez un opérateur Garder à l'écart à l'événement 01.

    Garder à l'écart est un opérateur de calcul assez intensif.

  5. Accédez à l'image 100 en cliquant sur l'extrémité droite de la glissière temps.

    Il faut attendre que le système calcule le mouvement de toutes les particules entre les images 0 et 100. Cette opération est nécessaire car Particle Flow est un système dépendant d'historique. Simultanément, les actions apparaissent brièvement en surbrillance dans Vue particule à mesure qu'elles sont exécutées à chaque image.

  6. Accédez à l'image 50 en cliquant au centre de la glissière temps.

    Il faut à nouveau patienter, le temps que le système calcule le mouvement de toutes les particules entre les images 0 et 50.

  7. Dans Vue particule, déplacez l'opérateur Cache du dépôt vers l'événement 01. Insérez-le n'importe où dans l'événement.

    Lorsque vous relâchez le bouton de la souris, vous devez patienter, le temps que l'opérateur Cache enregistre automatiquement en mémoire cache le mouvement des particules depuis le début de l'animation jusqu'à l'image actuelle. Pendant ce temps, chaque action se reflète brièvement sur chaque image.

  8. Accédez à l'image 20 (par exemple).

    Les seuls opérateurs qui se reflètent sont les opérateurs Cache (très rapidement) et Affichage ; le calcul ne nécessite aucune attente. Toutes les images entre 0 et 50 ont été enregistrées en mémoire cache.

  9. Allez à l'image 100.

    Cette fois, le délai d'attente résulte de la mise en mémoire cache du mouvement des particules des images 50 à 100.

  10. Passez ainsi d'images en images, et faites défiler la glissière temps.

    Tous les mouvements de particule étant désormais enregistrés dans la mémoire cache, il n'y a plus de délai d'attente. Par contre, si vous modifiez la valeur d'un paramètre, l'opérateur Cache recalcule automatiquement le mouvement des particules et l'enregistre en mémoire cache.

  11. Accédez à l'image 100, puis, dans Vue particule, cliquez sur l'opérateur Garder à l'écart et, à l'aide du clavier, choisissez la valeur 8,0 pour l'option Zone d'atténuation.

    Par défaut, l'opérateur Cache met automatiquement à jour la mémoire cache lorsque vous modifiez l'un des paramètres qu'il enregistre. Par conséquent, lorsque vous changez la valeur de l'option Zone d'atténuation au niveau de l'image 100, l'opérateur recalcule et réenregistre dans la mémoire cache toute l'animation.

    A présent, vous allez brièvement découvrir comment fonctionne la mise en cache manuelle.

  12. Cliquez sur l'opérateur Cache et, pour l'option Mettre à jour, choisissez la valeur Manuellement.

    L'opérateur Cache ne met plus à jour automatiquement les données enregistrées lorsque vous modifiez un paramètre.

  13. Cliquez sur l'opérateur Garder à l'écart, définissez la valeur de l'option Zone d'atténuation sur 9,0, puis faites glisser la glissière temps.

    Cette action ne nécessite pas de délai d'attente car l'animation continue d'être jouée à partir des données enregistrées en mémoire cache. Cependant, les données ainsi stockées ne sont plus valides car vous avez modifié un paramètre dans le système de particules.

  14. Cliquez sur l'opérateur Cache, puis sur Mettre à jour dans la zone Mise à jour manuelle.

    3ds Max ferme Vue particule, met à jour le cache du segment actif, puis ouvre à nouveau Vue particule. Les données enregistrées en mémoire cache sont désormais correctes.

    Les autres options de mise à jour manuelle vous permettent de mettre à jour dans la mémoire cache toute l'animation ou un intervalle d'images personnalisé.

    Comme vous le voyez, l'opérateur Cache est relativement puissant. Lorsqu'il est installé et actif, par défaut, il évite le recalcul du système de particules, sauf si vous modifiez les paramètres d'action ; dans ce cas, il met automatiquement à jour les données enregistrées en mémoire cache. Utilisé à bon escient, il peut permettre de gagner un temps précieux lors de la configuration et du test des systèmes de particules.

Interface

L'interface utilisateur apparaît dans le groupe de fonctions Paramètres, à droite de la boîte de dialogue Vue particule.

Utiliser pour
Permet d'enregistrer en mémoire cache le mouvement des particules lors de la lecture de l'animation dans les fenêtres et/ou lors du rendu. La valeur par défaut est Fenêtre.
Important : Choisissez l'option Fenêtre/Rendu uniquement si vous utilisez le même nombre de particules dans les fenêtres et lors du rendu. En d'autres termes, les deux paramètres Multiplicateur de quantité du panneau déroulant Emission de l'événement global (ou de la source Flux de particules) doivent être identiques. Sinon, les résultats sont imprévisibles.
Mettre à jour
Si vous modifiez un paramètre dans le système de particules, les données enregistrées en mémoire cache peuvent devenir non valides. Ce paramètre détermine si Particle Flow doit mettre à jour la mémoire cache automatiquement ou si c'est à vous de le faire manuellement. La valeur par défaut est Toujours.
  • Toujoursla modification d'un paramètre pris en compte par l'opérateur Cache engendre automatiquement la mise à jour des données enregistrées à partir du début de l'intervalle courant (voir le paramètre suivant) jusqu'à l'image actuelle.
  • Manuellementla mise à jour n'est réalisée que lorsque vous cliquez sur le bouton Mettre à jour ou que vous effacez la mémoire cache avant de passer à une autre image.
Intervalle
Cette option définit l'intervalle d'images dans lequel l'opérateur Cache fonctionne. La valeur par défaut est Segment actif.
  • TerminéParticle Flow enregistre en mémoire cache l'animation dans sa totalité.
  • Segment actifParticle Flow n'enregistre en mémoire cache que les images contenues dans le segment actif, telles que définies (paramètres Début et Fin) dans la boîte de dialogue Configuration durée. Il s'agit de l'intervalle d'images figurant sur la barre de piste. Vous pouvez également modifier le segment actif en maintenant les touches Alt et Ctrl enfoncées tout en déplaçant la barre de piste avec le curseur. Pour ce faire, vous pouvez utiliser le bouton gauche, central ou droit de la souris.
  • PersonnaliséParticle Flow n'enregistre en mémoire cache que les images contenues dans l'intervalle personnalisé, telles que définies par les paramètres Début et Fin de l'opérateur cache (voir ci-après).
    Remarque : si vous n'enregistrez en mémoire cache qu'une partie de l'animation, Particle Flow utilise les données mises en cache pour calculer le comportement des particules dans les images suivantes non enregistrées en mémoire cache. Par exemple, si vous enregistrez en mémoire cache les images 0 à 50 et que vous passez directement à l'image 60, Particle Flow calcule l'image 51 en fonction des données enregistrées dans la mémoire cache et les images 52 à 60 en fonction de chaque image précédente.
Début/Fin
Première et dernière image de l'intervalle à enregistrer dans la mémoire cache lorsque l'option Intervalle est configurée sur Personnalisé (voir ci-dessus). Valeur par défaut : 0,30.
Remarque : le schéma image/intervalle/image correspond à une durée absolue, par rapport à l'animation complète. Si vous utilisez l'opérateur Cache localement et que vous indiquez un intervalle d'images pendant lequel aucune particule n'est présente dans l'événement, Particle Flow n'utilise pas la mémoire cache.
Echantillonnage
Détermine à quelle fréquence l'opérateur Cache échantillonne l'animation et l'enregistre en mémoire cache. La valeur par défaut est Toutes les images.
  • Toutes les imagesParticle Flow enregistre les données d'animation en mémoire cache une fois par image.
  • Etape intégrationParticle Flow enregistre les données d'animation en mémoire cache à chaque étape d'intégration, en utilisant le paramètre Etape intégration comme indiqué dans le paramètre Utiliser pour (voir ci-dessus). Si l'option Utiliser pour est définie sur Fenêtre/rendu, le logiciel utilise la valeur Etape intégration la plus petite des deux. Par exemple, si l'option Fenêtre est définie sur Demi-image et Rendu sur 1/8 d'image, la fréquence d'échantillonnage est de 8 par image.
  • Toutes les N imagesParticle Flow enregistre en mémoire cache les données d'animation aux intervalles d'images indiqués par la valeur N ci-dessous.
Détermine l'intervalle d'images à mettre en mémoire cache lorsque l'option Echantillonnage (ci-dessus) est configurée sur Toutes les N images. Valeur par défaut : 5.

Par exemple, lorsque N est défini sur 5 (valeur par défaut), les données d'animation sont enregistrées en mémoire cache toutes les 5 images.

Mettre résultats de test en cache
Lors de la mise en cache de données de particules, cette option permet d'enregistrer également en mémoire cache le résultat des actions de test. Valeur par défaut : activé.

Cela est important si l'opérateur Cache est utilisé en tant qu'opérateur local et si l'événement suivant ne possède pas d'opérateur Cache. Pour qu'un nouvel événement fonctionne correctement, il doit recevoir des particules de l'événement courant. Ces particules sont le résultat d'une action de test. L'opérateur Cache peut enregistrer l'activité du test pour la lire ultérieurement.

Si l'opérateur Cache est utilisé en tant qu'opérateur global, il n'est pas nécessaire d'enregistrer les résultats de test en mémoire cache. En effet, comme le système stocke les données de chaque événement en mémoire cache, il peut accéder à n'importe quelle image sans recourir aux résultats de tests.

Enregistrer cache avec fichier
Lorsqu'elle est activée, Particle Flow intègre les données mises en cache aux scènes enregistrées sur le disque. Cela peut augmenter nettement la taille des fichiers enregistrés, mais évite de perdre du temps à recalculer le mouvement des particules lors du rechargement du fichier. Cette option est désactivée par défaut.

Normalement, les données en mémoire cache ne sont enregistrées que sous forme de fichiers disque que vous créez à l'aide des commandes Enregistrer et Enregistrer sous. Vous pouvez également faire en sorte que 3ds Max inclue les données mises en cache avec d'autres type de fichiers, à l 'aide des deux options suivantes.

Enregistrer cache avec maintien
Permet d'enregistrer les données mises en cache dans le fichier Conserver, créé à l'aide de l'option Conserver menu Editer. Cette option est désactivée par défaut.

Zone Mise à jour manuelle

Ces commandes permettent de mettre à jour la mémoire cache, d'effacer manuellement un intervalle d'images ou d'effacer l'intégralité du contenu de la mémoire cache.

Mettre à jour
Permet de calculer le mouvement des particules dans l'intervalle courant (défini ci-après) et de l'enregistrer en mémoire cache, à la place de toutes les données déjà mises en cache. Cette option n'est disponible que lorsque l'option Intervalle est définie sur Segment actif ou Personnalisé.

Pendant la mise à jour, 3ds Max ferme temporairement Vue particule et affiche la barre Progression mise à jour cache, tout en déplaçant la glissière temps sur l'intervalle mis en cache. Par défaut, l'animation est jouée en même temps dans les fenêtres. Pour éviter cela et accélérer le calcul, désactivez l'option Mettre à jour fenêtres.

Si la mémoire cache est insuffisante lors d'une mise à jour manuelle, l'opération s'interrompt et un message d'avertissement apparaît. Cliquez sur OK pour continuer, puis, dans la mesure du possible, augmentez la valeur Limite avant de recommencer la mise à jour de la mémoire cache.

Effacer
Permet de supprimer toutes les données enregistrées en mémoire cache.

Une fois la mémoire cache effacée, si vous accédez à une autre image ou que vous modifiez des paramètres d'action, le mouvement des particules est automatiquement mis en cache, même si l'option Mettre à jour est configurée sur Manuellement.

Intervalle
Permet de définir l'intervalle d'images selon lequel l'opérateur Cache recalcule les données lorsque vous cliquez sur Mettre à jour. La valeur par défaut est Segment actif.
  • TerminéParticle Flow efface la mémoire cache pour toute l'animation. Si vous choisissez cette option, le bouton Mettre à jour n'est plus accessible ; de fait, elle sert uniquement à effacer la mémoire cache.

    Pour mettre à jour l'animation complète, configurez le segment actif ou l'intervalle personnalisé afin d'englober toutes les images, puis utilisez le choix correspondant et cliquez sur Mettre à jour.

  • Segment actifParticle Flow ne met à jour dans la mémoire cache que les images contenues dans le segment actif, telles que définies dans les paramètres Début et Fin de la boîte de dialogue Configuration durée. Il s'agit de l'intervalle d'images figurant sur la barre de piste. Vous pouvez également modifier le segment actif en maintenant les touches Alt et Ctrl enfoncées tout en déplaçant la barre de piste. Pour ce faire, vous pouvez utiliser le bouton gauche, central ou droit de la souris.
  • PersonnaliséParticle Flow ne met à jour dans la mémoire cache que les images contenues dans l'intervalle personnalisé, telles que définies dans les paramètres Début et Fin (voir ci-après).
Début/Fin
Première et dernière image de la séquence mise à jour lorsque l'option Intervalle est définie sur Personnalisé (voir ci-dessus). Valeurs par défaut : 0 et 30.
Mettre à jour fenêtres

Permet de lire l'animation dans les fenêtres pendant la mise à jour manuelle de la mémoire cache. Désactivez cette option pour ne plus lire l'animation dans les fenêtres lors de la mise en cache manuelle ; cela peut accélérer le processus de mise en cache, notamment avec les systèmes de particules volumineux ou complexes. Valeur par défaut : activé.

Zone Mémoire utilisée (Ko)

L'opérateur Cache enregistre les données dans la mémoire du système ; Vous pouvez indiquer la quantité maximale de mémoire à utiliser. Si le paramètre Limite et la quantité de données mises en cache dépassent la mémoire disponible, le système peut utiliser de la mémoire virtuelle (basée sur le disque dur), ce qui ralentit la mise en mémoire cache. Si la mémoire arrive à saturation, les images restantes sont calculées " au vol ".

Cette zone permet aussi de contrôler la quantité de mémoire utilisée pour la mise en cache des données.

Limite
Quantité maximale de mémoire système, en kilo-octets, utilisée pour mettre en cache les données relatives aux particules. Valeur par défaut :100 000 ou 97,6 Mo.
Total
Quantité de mémoire, en kilo-octets, actuellement utilisée par les données mises en cache. En lecture seule.
Remarque : même les images d'animation ne comportant pas de particules nécessiteront sans doute une certaine quantité de mémoire cache. Cela s'explique du fait que la mémoire cache sert aussi à enregistrer les états des valeurs calculées aléatoirement (paramètre Variation, par exemple) afin d'assurer que l'activité des particules est homogène sur un réseau de génération de rendu – ou sur des machines n'ayant peut-être pas régulièrement accès à toutes les images.
Image actuelle
Quantité de mémoire (en kilo-octets) utilisée par les données mises en cache pour l'image actuelle. En lecture seule.