Cet article est l'article du 12ème jour du Calendrier de l'Avent Maya 2019.
Dans la production d'animation CG, un temps d'attente stérile d'attente pour une cuisson se produit dans chaque processus. Cette fois, je présenterai une technique permettant de réduire au maximum le temps d'attente pour les travaux de pâtisserie.
Arrêtez de dessiner l'écran de Maya. ↓ Faites un traitement lourd. ↓ Reprenez le dessin d'écran dans Maya et vérifiez le résultat.
Ce sera le flux.
Voici trois façons d'arrêter le dessin d'écran Maya.
Pour arrêter de dessiner l'écran à partir de l'interface utilisateur, appuyez sur le bouton d'arrêt entouré d'un cadre rouge.
Une fois exécuté, l'écran de travail sera entouré d'un cadre rouge. Pendant que ce cadre rouge apparaît, le dessin sur l'écran Maya s'arrête.
Appuyez à nouveau sur le bouton d'arrêt pour reprendre le dessin à l'écran.
Vous pouvez arrêter le dessin avec l'indicateur de pause de la commande ogs.
Exécutez la commande suivante pour arrêter de dessiner l'écran. L'écran sera entouré d'une ligne rouge comme vous l'avez fait depuis l'interface utilisateur.
cmds.ogs(pause=True)
Utilisez la même commande pour reprendre le dessin.
cmds.ogs(pause=True)
Cette fonctionnalité n'est pas disponible pour Maya 2017 et les commandes ogs antérieures car l'indicateur de pause n'existe pas.
http://help.autodesk.com/cloudhelp/2015/JPN/Maya-Tech-Docs/CommandsPython/ogs.html
Lors du traitement pour cuire de 1 à 1000 images, écrivez comme suit.
#Arrêter de dessiner
cmds.ogs(pause=True)
#Traitement de la cuisson
cmds.bakeResults( bakenodes, t=(1,1000), simulation=True )
#Reprendre le dessin
cmds.ogs(pause=True)
Celui que j'utilise le plus souvent
Exécutez la commande suivante pour arrêter de dessiner l'écran. Le cadre rouge ne s'affiche pas à l'écran comme la commande ogs. Cela fige juste l'écran.
cmds.refresh(suspend=True)
Utilisez la même commande pour reprendre le dessin.
cmds.refresh(suspend=False)
Lors du traitement pour cuire de 1 à 1000 images, écrivez comme suit.
#Arrêter de dessiner
cmds.refresh(suspend=True)
#Traitement de la cuisson
cmds.bakeResults( bakenodes, t=(1,1000), simulation=True )
#Reprendre le dessin
cmds.refresh(suspend=False)
Je voudrais mesurer le temps nécessaire à la cuisson lorsque l'écran est arrêté / le dessin n'est pas arrêté. Comparons chacun des maya2019 / maya2018 / maya2017 / maya2015.
Mesurez le temps nécessaire pour cuire une simple simulation de cheveux. La gamme de cuisson est de 1 à 1000F. Le nombre total de joints à cuire est de 91. Le mode d'évaluation de Maya est fixé à DG.
"""
Comment ne pas arrêter de dessiner
"""
import time
#Commencer la mesure
start = time.time()
#Traitement de la cuisson
bakenode = cmds.ls('bake_joint*')
cmds.bakeResults( bakenode, t=(1,1000), simulation=True )
#Fin de la mesure
elapsed_time = time.time() - start
print (u"temps de traitement:{0}".format(elapsed_time) + "[sec]")
"""
Comment arrêter de dessiner à l'aide de la commande ogs
"""
import time
#Commencer la mesure
start = time.time()
#Arrêter de dessiner
cmds.ogs(pause=True)
#Traitement de la cuisson
bakenode = cmds.ls('bake_joint*')
cmds.bakeResults( bakenode, t=(1,1000), simulation=True )
#Reprendre le dessin
cmds.ogs(pause=True)
#Fin de la mesure
elapsed_time = time.time() - start
print (u"temps de traitement:{0}".format(elapsed_time) + "[sec]")
"""
Comment arrêter le dessin à l'aide de la commande d'actualisation
"""
import time
#Commencer la mesure
start = time.time()
#Arrêter de dessiner
cmds.refresh(suspend=True)
#Traitement de la cuisson
bakenode = cmds.ls('bake_joint*')
cmds.bakeResults( bakenode, t=(1,1000), simulation=True )
#Reprendre le dessin
cmds.refresh(suspend=False)
#Fin de la mesure
elapsed_time = time.time() - start
print (u"temps de traitement:{0}".format(elapsed_time) + "[sec]")
Addition: Le résultat de la mesure en mode parallèle a été ajouté.
Ouvrez les données de vérification créées dans Maya 2019.2 dans chaque version et mesure. Mesuré en mode DG et en mode parallèle. Arrêter le dessin d'écran lors de l'utilisation de la commande ogs et de la commande d'actualisation
Maya | Cuire tel quel | commande ogs | commande de rafraîchissement |
---|---|---|---|
maya2019 | 60.34s | 32.31s | 43.90s |
maya2018 | 59.15s | 31.56s | 45.97s |
maya2017 | 55.93s | 25.34s | 31.18s |
maya2016 | 51.18s | None | 20.76s |
maya2015 | 47.82s | None | 17.21s |
Maya | Cuire tel quel | commande ogs | commande de rafraîchissement |
---|---|---|---|
maya2019 | 17.34s | 15.80s | 14.87s |
maya2018 | 18.78s | 16.17s | 19.69s |
maya2017 | 16.84s | 13.92s | 12.94s |
maya2016 | 46.50s | None | 20.14s |
maya2015 | None | None | None |
Le mode parallèle est plutôt bon! En outre, la vitesse de traitement est plus rapide si vous arrêtez de dessiner l'écran pour les deux DG / parallèle.
En règle générale, cette différence de vitesse augmente à mesure que les données traitées augmentent. Si la cuisson prend 10 minutes, cela prendra environ 2 minutes ...!
Outre les animations de cuisson L'arrêt du dessin d'écran est également efficace lors de la sortie du cache de géométrie ou de l'enregistrement du cache de simulation.
Utilisez votre temps à bon escient!
Recommended Posts