Benutzer-Werkzeuge

Webseiten-Werkzeuge


postpro:vfx:renderfarm

Wie funktionieren Render-Manager?

Eine Render-Management-Software verteilt die Frames einer zu rendernden Sequenz auf verschiedene Rechner. Soll z.B. Frame 1 bis 100 einer Maya-Szene gerechnet werden, so kümmert sich die Render-Management-Software darum, dass Rechner1 Frame 1-5 Rendert und Rechner2 rendert Frame 6-10 usw. Je mehr Rechner zur Verfügung stehen, desto schneller ist die Sequenz fertig.

Was ein Render-Manager nicht kann (bzw. wofür er nicht gedacht ist), ist ein einzelnes Bild von verschiedenen Rechnern berechnen zu lassen.

Die momentan an der HdM eingesetzte Render-Management-Software ist RenderPal.

Voraussetzungen für's Farm-Rendern

Alle Dateien auf HdM-Ca/Vfx-Netzlaufwerk

Die zu rendernden Maya-Szenen und alle Abhängigkeiten müssen auf einem der Netz-Laufwerke (cg1, cg2, cg3 bzw. vfx-nas) vorliegen. Mit „Abhängigkeiten“ sind Texturen, Caches, Referenzierte Files, OCIO-Configs usw. gemeint. Es muss auf alle Abhängigkeiten und auf alle im Render-Manager eingestellten Schreib-Pfade Zugriff bestehen (–> Nur Netzlaufwerke kommen in Frage und Benutzerrechte müssen stimmen! OCIO ist derzeit auf allen Rechnern auf C:\OCIO\aces_1.1 verfügbar.)

Keine absoluten Pfade

Referenzen, die zu Hause angelegt wurden, dürfen deshalb auch im „Unresolved Path“ keinen Absoluten Pfad enthalten, sondern müssen euer Env-Var-Prefix tragen (z.B. „$MY_PROJECT_PATH/restlicher/pfad/zu/eurer/datei.ma“). Sollte nicht von Beginn an mit Umgebungsvariablen für das Projekt gearbeitet worden sein, so müssen die falschen lokalen Pfade vor dem Rendern auf die korrekten Netzlaufwerk-Pfade geändert werden! Im einfachsten Falle geht das beim Arbeiten mit ASCII-basierten Dateiformaten (z.B. MayaASCII) mit einem Texteditor! (z.B. VSCodiums Funktion „Search and Replace in Files“)

Alle Textur und Cache-Pfade müssen relativ zum Maya-Projekt angelegt sein(z.B. in einem File-Node „textures/unterordnerXY/tolle_textur.png“ ←- man beachte den relativen Pfad, den man daran erkennt, dass er nicht mit einem Schrägstrich beginnt.)

Der Renderer muss verfügbar sein

Auf den Rechnern, auf denen gerendert werden soll, muss natürlich sämtliche Rendersoftware installiert sein, mit der ihr arbeiten wollt. Vorinstalliert ist immer Maya/Arnold und Nuke. Solltet ihr selbst einen Renderer organisiert haben (Redshift/VRay), so müsst ihr diesen auf den gewünschten Rechnern installieren und ggf. einen Renderpool dafür anlegen (fragt mich!).

RenderPal Client muss laufen

Auf den Rechnern, auf denen gerendert werden soll, muss der RenderPal Client laufen. An der HdM läuft dieser auf den Rechnern in Raum 042 und 043 als Dienst wenn kein User angemeldet ist. Sobald sich jemand am Rechner anmeldet wird der Client und alle laufenden Jobs gekillt!

Man kann sich auch auf einem Rechner einloggen und von Hand den RenderPal-Client starten. Dadurch gibt man seinen Rechner zum Rendern frei ohne sich abzumelden (für Testzwecke und Ausnahmesituationen manchmal eine gute Lösung).

Arbeiten mit RenderPal

Die ganz detaillierte Version findet ihr im RenderPal-Manual. Ein Blitz-Intro gibt es im Folgenden…

RenderPal V2 Remote Controller starten Server adress: ca-lic User name: render Password: render

In dieser Ansicht startet der Remote-Controller. In der Pool/Client-Sektion (grüner Bereich) könnt ihr mit Rechtsklick auf die Pools (im Bild z.B. der Pool „043“ mit dem Pfeilchen nach unten…) oder auf einzelne Clients diese „Connecten“ oder zu verschiedenen Jobs zuweisen/von Jobs abziehen…

Eigentlich sollten Clients in allen Pools automatisch „connecten“.

Nur Rechner, die „connected“ sind und auf „Idle“ stehen, sind zum Rendern verfügbar. „Disconnected“ kann verschiedenes bedeuten:

  • Der Rechner ist aus (Starten von Außerhalb der HdM über Wake-On-Lan möglich).
  • Der RenderPal Client läuft nicht weil ein User angemeldet ist.
  • Der RenderPal Client läuft nicht weil ein Softwareproblem vorliegt (Info an einen Mitarbeiter!).

In der Job-Status-Sektion (blauer Bereich) seht ihr Job-Informationen zu bereits beendeten, gerade laufenden oder pausierten Jobs (im Bild noch leer…). Wenn dort Jobs gelistet sind, könnt ihr auch diese per Rechtsklick Verwalten (Neu starten, Pausieren, Löschen…)

Ein Render set anlegen

  1. Wechselt auf das Tab „Render set“.
  2. Wechselt (wenn nicht schon eingestellt) im oberen Dropdown z.B. auf „Maya: Arnold Render“. (Wenn ihr eigene Render-Engines am Start habt, die hier nicht auftauchen, müsst ihr evtl. unter „Renderers > Renderer management“ ein eigenes „Set“ definieren –> fragt!). Im Dropdown-Menü darunter könnt ihr von uns vordefinierte Sets verwenden (Momentan für die CA 2022_ca oder für VFX 2022_vfx).
  3. Wählt bei „Add scenes…“ eure (auf dem Netzlaufwerk befindliche!!!) zu rendernde Datei(en) aus. Mehrere Dateien pro Job ist Geschmackssache… ich rate nicht dazu.
  4. Wählt euer Projektverzeichnis und bei Bedarf im Feld darüber das Verzeichniss, in welches die Bilder gerendert werden sollen. Wenn ihr das nicht angebt, wird in das im Projekt definierte Verzeichnis gerendert, was i.d.R. ja das ist was man will.
  5. Ihr müsst unbedingt hier die zu rendernde(n) Frame range(s) eingeben! Wenn ihr das nicht tut, dann wird der Job nur auf einem Rechner abgearbeitet, womit man sich den Render-Manager auch hätte sparen können. Schaut bezüglich erlaubten Notationen auch im RenderPal-Manual. Hintergrund: RenderPal kann nicht wissen was ihr in eurem Maya-File für eine Frame range angegeben habt. RenderPal nimmt lediglich euren Datei-Pfad und ruft auf den Clients einen Kommandozeilen-Renderer auf (Siehe z.B. http://help.autodesk.com/view/MAYAUL/2019/ENU/?guid=GUID-C032F699-60F3-418A-8276-3B67E0C0CF5A). Dabei gibt es Kommandozeilen-Flags, die Start- und Endframe definieren. RenderPal liefert einfach die entsprechenden Werte für diese Flags (Aus dem Beispiel von oben: Rechner1: *render -start 1 -end 5*, Rechner2: *render -start 6 -end 10* usw.)
  6. „Create net job“ klicken.

Benutzt im Eigenen Interesse ein eindeutiges und immer gleiches Prefix für eure Jobs (So könnte ein sinnvoller Jobname aussehen „ca_megaproject_shot33_correct_light“)! Und nutzt zudem das Job-Coloring!

Kontrolliert nochmal, dass bei Settings der richtige Renderer eingestellt ist!

Lasst die Finger vom Priority-Regler und vom Parallel renderings count (in letzterem MUSS eine 1 drin stehen).

Bei Bedarf könnt ihr die „Chunk size“ (Frame splitting) ändern. Diese bestimmt wie viele Frames jeweils von einem Rechner übernommen werden. Fünf ist ein guter Startwert. Es gibt aber Szenarien, in denen andere Werte sinnvoll sind:

  1. Wenn man extrem kurze Renderzeiten hat, dann ist evtl. das Laden der Dateien (Texturen, Caches etc.) und der Start des Renderers das Längste am Renderprozess. Dies muss für eine Framerange (einen *Chunk*) nur einmal gemacht werden. In diesen Fällen lohnt es sich also hier eine größere Chunksize einzutragen.
  2. Wenn man extrem lange Rechenzeiten und viele freie Rechner hat, dann ist es natürlich besser wenn viele Rechner parallel an einem Frame arbeiten (und das auch sicher abschließen können bevor sich wieder irgendwer an dem Rechner anmeldet und somit der Chunk gekillt wird). Nur dann lohnt sich eine kleinere *Chunk size*.

Vergesst nicht die Pools und Rechner auszuwählen, auf denen gerendert werden soll. Angehakte Rechner ohne den Haken am Pool werden nicht mitrechnen. Man kann über das Menü Remote Controller > Client Management eigene Pools anlegen, was ihr aber bitte nur in Absprache mit Peter oder Jochen macht!

Ihr könnt durch Bestätigen mit OK den Renderjob erzeugen. Wenn ihr nicht „Paused“ angeklickt habt, wird er auch sofort in die Pipeline geschickt!

Nun könnt ihr zurück auf das „Server“ Tab und sehen wie sich Euer Job so entwickelt. Wenn ihr z.B. vorher auf „Paused“ geklickt habt könnt ihr mit Rechtsklick auf euren Job in der Jobliste hier den Job starten.

Hinweise für die Maya Render Settings

Ihr könnt in den Einstellungen des Render sets einige Flags für's Rendern überschreiben (Image Width/Height, die zu rendernde Camera etc.). Was ihr da nicht einstellt wird korrekt aus dem Bezogen, was ihr in den Maya Render Settings eingestellt habt. Lediglich die Frame list müsst hier hier angeben!

Einen Tip für Maya-Szenen: Stellt in den Render Settings im Common-Tab bei Frame/Animation ext name.#.ext ein! Und wählt weiter unten unter „Renderable Camera“ die gewünschte Kamera aus bzw löscht alle aus der Liste, die ihr nicht versehentlich rendern wollt (Es wurden schon nächtelang teure Bilder durch falsche Kameras gerendert).

Frohes Rendern!

Troubleshooting

  • Im Renderer-Management bei der Benennung von Versionen keine / (wie z. B. WS23/24) verwenden! Remote Controller stürzt sonst ab!
postpro/vfx/renderfarm.txt · Zuletzt geändert: 2024/01/24 19:33 von ruhrmann