Für mein letztes Projekt habe ich eine kleine Animation gerendert. Da dies mehrere hundert Bilder sind, benötigt die Berechnung natürlich viel Zeit. Darum habe ich mich mit der Optimierung dieses Vorgangs beschäftigt und eine klasse Funktion entdeckt: Das Rendern über die Konsole!

Blender ermöglicht es uns, nicht nur über die grafische Oberfläche zu rendern, sondern auch direkt über die Konsole, so dass sich die Rechnerleistung direkt auf die eigentliche Aufgabe konzentrieren kann.

Zunächst hier der generelle Aufbau des Befehls und die benötigten Parameter:

Befehl Bedeutung
blender Aufruf der exe an sich. Danach kommen die Parameter
-b Run in background. Rendering ohne GUI
-f < frameNr > Render Frame. Berechnet ein einzelnes Bild
-a Render animation. Berechnet eine Animation
-s < frameNr > Start frame. Erstes Frame (für ein Intervall, von Bild bis Bild)
-e < frameNr > End frame. Letztes Frame (für ein Intervall, von Bild bis Bild)

Mehr benötigt man erstmal nicht, auch wenn es noch viele weitere Parameter gibt, um die Einstellungen komplett über die Konsole durchzuführen. Wer sich die mal ansehen will, benutzt den Schalter "-h". Uns genügen hier aber erstmal die oben angegebenen.

Wie ist also die Vorgehensweise? Zuerst bereitet ihr alles in Blender selbst vor: Anzahl der Samples, Layer, Output-Format. Danach speichern. Jetzt kommt der interessante Teil. Öffnet eine Konsole und begebt euch in das Blender-Verzeichnis, in dem die Blender.exe liegt.

Rendern eines einzelnen Bildes

Für ein einzelnes Bild sieht der Befehl also so aus:

blender -b C:\Blender\beer.blend -f 1

Wir rendern also das Bild 1 der Datei "beer.blend". Nach drücken von Return rattert die schwarze Box los und erstellt das Bild und speichert es in "C:\tmp\" (falls in der .blend kein anderer Ausgangsordner angegeben ist)

Rendern der Einzelbilder einer Animation

Für eine Animation rendert man die einzelnen Frames und fügt dieses dann in einem Videoschnittprogramm. Hier der Befehl:

blender -b C:\Blender\beeranimation.blend -s 1 -e 50 -a

Hier werden also die Einzelbilder der Animation "beeranimation.blend" von Frame 1 - 50 gerendert.

Der Vergleich

Was bringt uns nun diese alternative Vorgehensweise? Hier mein Testbild:

Bier

Folgende Bedingungen:

  • Benutzt wird der Cycles-Renderer
  • Ausflösung 1080x1920
  • 200 Samples (Berechnungsschritte)
  • Rendering via CPU
Renderingzeit mit GUI:  05 Minuten 56 Sekunden

Renderingzeit ohne GUI  05 Minuten 22 Sekunden

Jetzt kann man sagen, wau, 34 Sekunden, sooo klasse ist das nicht. Das mag stimmen - für ein einzelnes Bild.

Betrachten wir aber nun den Fall einer Animation mit 500 Frames, dann ist das eine Zeitersparnis von 4,7 Stunden! Und das ist wirklich beträchtlich.

Ihr habt noch Fragen? Schreibt einen Kommentar oder nutzt das Kontaktformular!