Dieser Artikel ist der 12. Tagesartikel von Maya Adventskalender 2019.
In der CG-Animationsproduktion tritt in jedem Prozess eine unfruchtbare Wartezeit auf ein Backen auf. Dieses Mal werde ich eine Technik einführen, um die Wartezeit für Backarbeiten so weit wie möglich zu reduzieren.
Hör auf, den Bildschirm von Maya zu zeichnen. ↓ Machen Sie schwere Verarbeitung. ↓ Setzen Sie die Bildschirmzeichnung in Maya fort und überprüfen Sie das Ergebnis.
Es wird der Fluss sein.
Hier sind drei Möglichkeiten, um das Zeichnen von Maya-Bildschirmen zu stoppen.
Um das Zeichnen des Bildschirms über die Benutzeroberfläche zu beenden, drücken Sie die Stopptaste, die von einem roten Rahmen umgeben ist.
Bei der Ausführung wird der Arbeitsbildschirm von einem roten Rahmen umgeben. Während dieser rote Rahmen angezeigt wird, wird das Zeichnen auf dem Maya-Bildschirm gestoppt.
Drücken Sie die Stopp-Taste erneut, um das Zeichnen auf dem Bildschirm fortzusetzen.
Sie können das Zeichnen mit dem Pausenflag des Befehls ogs beenden.
Führen Sie den folgenden Befehl aus, um das Zeichnen des Bildschirms zu beenden. Der Bildschirm wird wie auf der Benutzeroberfläche von einer roten Linie umgeben.
cmds.ogs(pause=True)
Verwenden Sie denselben Befehl, um das Zeichnen fortzusetzen.
cmds.ogs(pause=True)
Diese Funktion ist für Maya 2017- und frühere ogs-Befehle nicht verfügbar, da das Pausenflag nicht vorhanden ist.
http://help.autodesk.com/cloudhelp/2015/JPN/Maya-Tech-Docs/CommandsPython/ogs.html
Schreiben Sie beim Backen von 1 bis 1000 Bildern wie folgt.
#Hör auf zu zeichnen
cmds.ogs(pause=True)
#Backverarbeitung
cmds.bakeResults( bakenodes, t=(1,1000), simulation=True )
#Zeichnung fortsetzen
cmds.ogs(pause=True)
Die, die ich am häufigsten benutze
Führen Sie den folgenden Befehl aus, um das Zeichnen des Bildschirms zu beenden. Der rote Rahmen wird nicht wie der Befehl ogs auf dem Bildschirm angezeigt. Es friert nur den Bildschirm ein.
cmds.refresh(suspend=True)
Verwenden Sie denselben Befehl, um das Zeichnen fortzusetzen.
cmds.refresh(suspend=False)
Schreiben Sie beim Backen von 1 bis 1000 Bildern wie folgt.
#Hör auf zu zeichnen
cmds.refresh(suspend=True)
#Backverarbeitung
cmds.bakeResults( bakenodes, t=(1,1000), simulation=True )
#Zeichnung fortsetzen
cmds.refresh(suspend=False)
Ich möchte die Zeit messen, die zum Backen benötigt wird, wenn der Bildschirm gestoppt ist / das Zeichnen nicht gestoppt ist. Vergleichen wir jeden von maya2019 / maya2018 / maya2017 / maya2015.
Messen Sie die Zeit, die zum Backen einer einfachen Haarsimulation benötigt wird. Der Backbereich reicht von 1 bis 1000F. Die Gesamtzahl der zu backenden Gelenke beträgt 91. Mayas Bewertungsmodus ist auf DG festgelegt.
"""
Wie man nicht aufhört zu zeichnen
"""
import time
#Messung starten
start = time.time()
#Backverarbeitung
bakenode = cmds.ls('bake_joint*')
cmds.bakeResults( bakenode, t=(1,1000), simulation=True )
#Ende der Messung
elapsed_time = time.time() - start
print (u"Verarbeitungszeit:{0}".format(elapsed_time) + "[sec]")
"""
So beenden Sie das Zeichnen mit dem Befehl ogs
"""
import time
#Messung starten
start = time.time()
#Hör auf zu zeichnen
cmds.ogs(pause=True)
#Backverarbeitung
bakenode = cmds.ls('bake_joint*')
cmds.bakeResults( bakenode, t=(1,1000), simulation=True )
#Zeichnung fortsetzen
cmds.ogs(pause=True)
#Ende der Messung
elapsed_time = time.time() - start
print (u"Verarbeitungszeit:{0}".format(elapsed_time) + "[sec]")
"""
So beenden Sie das Zeichnen mit dem Aktualisierungsbefehl
"""
import time
#Messung starten
start = time.time()
#Hör auf zu zeichnen
cmds.refresh(suspend=True)
#Backverarbeitung
bakenode = cmds.ls('bake_joint*')
cmds.bakeResults( bakenode, t=(1,1000), simulation=True )
#Zeichnung fortsetzen
cmds.refresh(suspend=False)
#Ende der Messung
elapsed_time = time.time() - start
print (u"Verarbeitungszeit:{0}".format(elapsed_time) + "[sec]")
Addition: Das Messergebnis im Parallelmodus wurde hinzugefügt.
Öffnen Sie die in Maya 2019.2 erstellten Verifizierungsdaten in jeder Version und Maßnahme. Gemessen im DG-Modus und im Parallelmodus. Beenden Sie das Zeichnen des Bildschirms, wenn Sie den Befehl ogs und den Befehl refresh verwenden
Maya | Backen wie es ist | ogs Befehl | Aktualisierungsbefehl |
---|---|---|---|
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 | Backen wie es ist | ogs Befehl | Aktualisierungsbefehl |
---|---|---|---|
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 |
Der Parallelmodus ist ziemlich gut! Außerdem ist die Verarbeitungsgeschwindigkeit schneller, wenn Sie den Bildschirm für DG / Parallel nicht mehr zeichnen.
Als persönliche Faustregel nimmt dieser Geschwindigkeitsunterschied mit zunehmenden Daten zu. Wenn das Backen 10 Minuten dauert, dauert es ungefähr 2 Minuten ...!
Neben Backanimationen Der Stopp des Bildschirmzeichnens ist auch wirksam, wenn der Geometrie-Cache ausgegeben oder der Simulations-Cache gespeichert wird.
Nutze deine Zeit sinnvoll!
Recommended Posts