Team Render
Allgemeines
Mittels des Team-Renderers kann einfach und schnell per Buttonklick mit mehreren im lokalen Netzwerk befindlichen Rechnern (auf denen natürlich CINEMA 4D in der gleichen Programmversion installiert sein muss) gerendert werden. Diese Rechner helfen dann nicht nur bei der Berechnung von Animationen, sondern können auch gemeinsam an einem Einzelbild(!) rendern:
Wenn Sie mit mehreren Rechnern an einer Animation rendern, nimmt sich im Gegensatz zur Einzelbildberechnung jeder Client-Rechner jeweils ein eigenes Animationsbild vor.
Bedienung
Gehen Sie so vor, wenn Sie per Team-Renderer rendern wollen:
- Vergewissern Sie sich, dass die Option Team Render aktivieren in den Programmvoreinstellungen unter "Renderer/Team Render" aktiviert ist.
- Rufen Sie den Befehl Rechner Team-Renderer (Hauptmenü: Rendern) auf.
- Im eingeblendeten Fenster werden alle im lokalen Netzwerk gefundenen Rechner (diese müssen die Option Rechner über Netzwerk teilen in den Programm-Voreinstellungen unter "Renderer/Team-Renderer" aktiviert haben) aufgelistet. Klicken Sie per rechter Maustaste auf die gewünschten und wählen Sie "Verifizieren". Geben Sie hier das Sicherheitskennwort (das für jeden Rechner separat gesetzt werden kann) ein und klicken Sie auf "OK". Die links neben jedem Rechner aufgelistete Option muss aktiviert sein, um ihn beim Teamrenderen zu betetiligen.
-
Rufen Sie den Befehl Team-Rendern im Bild-Manager (Hauptmenü: Rendern) auf. Fertig (Beachten Sie, dass zunächst die Szenen/Texturen an die Rechner verteilt werden müssen, was unter Umständen eine Zeitlang dauern kann).
Sie müssen sich tatsächlich um nichts weiter kümmern; wenn die geöffnete Szenendatei auf alle Texturen/XRefs/Assets oder sonstige externe Dateien Zugriff hat, werden die Dateien automatisch an alle Rechner verteilt und mit dem Rendern begonnen.
- Server: Der Rechner, von dem das Team Render-Rendering angestoßen wurde. Dies kann eine normal installierte CINEMA 4D-Version oder auch ein Team Render Server sein.
- Render-Client: Ein entfernter Rechner, der vom Server mit Team-Render-Aufträgen beauftragt wird (das kann eine normal installierte CINEMA 4D-Version oder ein per Installer installierter Team Render-Client sein).
Verschiedenes
- Server und Render-Clients müssen bzgl. ihrer Programmversion auf dem gleichen Stand sein.
- Ebenso müssen in der Szenendatei verwendete Plug-ins und andere Bestandteile (alles, was die Szene an Fremdsoftware zum Rendern benötigt) auch jeweils bei den Render-Clients installiert sein.
-
Bei einem Einzelbildrendering gilt: Je schneller die Buckets eines Bildes von einem einzigen Rechner berechnet werden können, desto weniger sinnvoll ist der Einsatz des Team Render. Hintergrund: jeder fertig berechnete Bucket wird übers Netzwerk an den Server verschickt.
Wenn jetzt die Frequenz der fertig gestellten Buckets zu hoch ist, wird der Daten-Overhead im Netzwerk einfach zu groß und verlangsamt das Rendern. Auch wenn ein Einzelbild nur wenige Sekunden benötigt, werden Sie mit dem Team Render aus gleichen Gründen NICHT schneller sein. - Zu einem ähnlichen Problem wie unter dem vorherigen Punkt beschriebenen kommt es, wenn Sie Animationen berechnen, die sehr lang sind und deren einzelne Bilder sehr schnell berechnet werden. Es kann dann der Eindruck entstehen, dass sich trotz laufendem Job einzelne Rechner nicht mehr am Rendern beteiligen. Das ist richtig so: das eigentliche Rendern ist beendet, aber der Server ist noch mit der Verarbeitung der von den Clients gesendeten Bilder beschäftigt.
- Es wird ein möglichst schnelles TCP/IP-Netzwerk empfohlen, der Datenverkehr bei der Kommunikation von und zum Server und der Render-Clients untereinander kann immensen Umfang annehmen. Besonders wenn im Zusammenhang mit GI diverse Cache-Daten durchs Netzwerk geschickt werden, können erstaunliche Datenmengen zusammenkommen (Beispiel: bei einem Testrendering eines Einzelbildes mit 3 beteiligten Rechnern und aktivierten Irradiance Cache und Licht-Maps kamen an der Netzwerkkarte des Servers 500 MB (oder wesentlich mehr) zusammen, wobei die Renderzeit nur knapp 50 Sekunden betrug).
- In heterogenen Netzen unterschiedlicher Computer (speziell: unterschiedlicher CPUs) kann es möglicherweise zu mehr oder weniger großen Differenzen in der Berechnung aller möglichen Effekte geben, wie beispielsweise bei Videotexturen (unterschiedliche Video-Frameworks), Partikelströmen, Kleidung, Hair, Dynamics, Verzögerungs-Effektor oder GI. Die Partikel werden auf den verschiedenen Maschinen an z.T. anderen Positionen berechnet. Ursache hierfür sind die unterschiedlichen Rechengenauigkeiten der Mathematik-Einheiten der Rechner (FPU - Floating Point Unit). Sie kommen im einen Fall früher, im anderen später zum Tragen. Generell sollten Sie bei solchen Szenen die entsprechenden Effekte immer backen. Diese Problematik lässt sich ausschalten, wenn Sie exakt identische Rechner-Konfigurationen verwenden. Denn nur solcherlei Rechner kommen bei derselben Szene zu exakt denselben Ergebnissen. Für GI-Berechnungen können Cache-Dateien zum Team Render Server hochgeladen werden (s.a. GI und Animationen).
- Szenen mit Verwendung von "Irradiance Cache (alt)" können nicht mit dem Team Render berechnet werden. Sollten Sie das dennoch versuchen, wird nach Ausgabe einer Warnung intern zum aktuellen Irradiance Cache umgeschaltet und dann mit Team Render gerechnet.
- Aus Performance-Gründen wird der Einsatz von WLAN im Zusammenhang mit Team Render nicht empfohlen. Der Netzwerkverkehr ist beim Teamrendern hoch und bei mehreren im gleichen WLAN-Netz befindlichen Rechnern kommt es schnell zu Engpässen.
- Beachten Sie, dass selbst beim Berechnen nur kleinster Bildbestandteile ("Ich habe da noch einen alten Rechner mit 2GB Arbeitsspeicher rumstehen, der hilft ja auch die Renderzeit um 10% zu verkürzen") die komplette Szene geladen und verarbeitet werden muss. Wenn der Team Render-Client damit u.U. überfordert ist, hat ein schnellerer Rechner evtl. schon sämtliche Buckets berechnet, bevor der (immer noch gelb gelistete) Nachzügler überhaupt angefangen hat.
- Bei Animations-Berechnungen per Render-Manager wird bei Abbruch des Jobs (oder Absturz des Servers) das Rendern bei erneutem Job-Start fortgesetzt. Dazu muss CINEMA 4D die Bilder vorher mit Speicherpfad abgelegt haben, damit diese danach vom Render-Manager wieder gefunden werden können.
- Achten Sie beim Rendern von Videodateien darauf, dass der Server die entsprechenden Codecs installiert hat (ausschlaggebend ist das hier eingestellte Format).
-
Auf dem System des Render-Clients sollte ausreichend Massenspeicherplatz für den Rendervorgang (z.B. Szenendateien, Texturen, GI-Cache-Dateien und Puffer für den virtuellen Speicherplatz) zur Verfügung stehen. Befinden sich dort weniger als 2GB, bricht der Render-Client mit einer Fehlermeldung ab (bei weniger als 3GB sollte aber bereits eine Warnmeldung ausgegeben worden sein).
-
Team Render kann jetzt mit dem Parameter Bildschritt umgehen und die Animation entsprechend berechnen.
Wo finden Sie die Team-Render-Einstellungen?
- Im Rendern-Menü unter dem Punkt Team-Render-Rechner....
- In den Programm-Voreinstellungen unter dem Punkt Renderer/Team Render.
- In den Render-Voreinstellungen unter dem Punkt Team-Render.
- Im Render-Manager kann in der Spalte Team ein Job für das Teamrendern definiert werden.
Reine Render-Clients
Sie können CINEMA 4D-Instanzen als reine Render-Clients mit reduzierter Oberfläche per Installer installieren. Diese bestehen nur aus der bekannten Rechnerliste (s.a. Die Team-Render-Rechnerliste), der Konsole und einigen wenigen Befehlen wie Programm-Voreinstellungen, Hilfeaufruf, Updatemöglichkeiten etc. Diese Funktionalitäten kennen Sie alle schon von den regulären CINEMA 4D-Installationen.
Beachten Sie, dass in der Konsole auch Warnungen und Fehlermeldungen ausgegeben werden. Das kann die Angabe fehlender Texturen, volle Festplatte etc. sein (das sind übrigens die gleichen Meldungen, die Ihnen der Render-Manager im Tab "Protokolldatei" ausgibt). Diese Informationen werden auch teilweise im Webinterface in den Logs bei "Jobs" und "Netzwerk" angezeigt. Beachten Sie, dass die Ausgabe hier größtenteils in Englisch (und in einigen Fällen bei Fehlermeldungen in der Sprache des Betriebssystems) erfolgt.
Beachten Sie außerdem, dass der Render-Client hier zumindest den Team Render Server in grün gelistet hat (Render-Clients können momentan nur vom Render Server aus verifiziert werden, die Rechnerliste dient daher primär informellen Zwecken). Eventuell vorhandene, parallele Render-Clients werden hier NICHT aufgeführt.
Die unten angeordnete Python-Eingabezeile ist keine spezielle Team-Render-Funktionalität, sondern eine allgemeine Zugriffsmöglichkeit auf die Python-API (Details zu Python finden Sie wie immer unter http://developers.maxon.net).
Reine Render-Clients können übrigens vom Server aus (dort in der Team-Render-Rechnerliste mit Rechtsklick auf einen Render-Client und Client neu starten) neu gestartet werden.
Schmerzlose Verbindung von vielen Render-Clients mit dem Server
Möchten Sie viele Render-Clients automatisiert mit Servern ohne Verifizierung verbinden, so sollten Sie eine kleine Textdatei namens "c4d_net_server.txt" erstellen, deren einziger Inhalt so aussieht
Server-Adresse:Port;Sicherheitsschlüssel des Servers
Beispielsweise sieht das dann so aus: 192.168.0.45:5402;abcde, wobei die IP auch durch den Hostnamen ersetzt werden kann.
Platzieren Sie diese Textdatei im Verzeichnis der auszuführenden "CINEMA 4D TeamRender Client"-Startdatei. Beim Starten des Render-Clients verbindet sich dieser dann automatisch mit dem Server (der allerdings zuvor gestartet werden muss). Das erspart einiges an Arbeitsaufwand, wenn Sie beispielsweise 50 Render-Clients anbinden wollen.
Wenn Sie diese Textdatei nicht selbst erstellen wollen, so verwenden Sie den im nächsten Abschnitt beschriebenen Befehl Server speichern.
Reine Render-Clients haben diese beiden spezifischen Befehle:
Server speichern
Mittels Server speichern können die Server, denen der aktuelle Render-Client zugeordnet ist (oder war), in einer Textdatei namens "c4d_net_server.txt" gespeichert werden. Diese Textdatei entspricht der im vorherigen Absatz schon beschrieben, muss aber gegebenenfalls mit Sicherheitsschlüsseln ergänzt werden (eine entsprechende Meldung kommt bei Befehlsaufruf).
Server laden
Möchten Sie – wie oben beschrieben – die "c4d_net_server.txt"-Datei nicht im CINEMA 4D-Programmverzeichnis unterbringen, kann sie auch mit diesem Befehl geladen werden.
Limitationen des Team Renderers
Folgende Funktionalitäten werden von Team Render nicht unterstützt:
- Stereoskopisches Rendern
- Sound-Rendering
- Zwischenbild-Bewegungsunschärfe (das früher sog. "Szenen-Motion-Blur") bei Einzelbildberechnung
- Post-Effekt Vektor-Bewegungsunschärfe bei Einzelbildberechnung (der Multi-Pass Motion-Vektor funktioniert hingegen)
- Bei Pyrocluster-Szenen kann es bei inhomogenen Netzwerken zu nicht einheitlichen Renderergebnissen kommen.
- Der Ansichtsrenderer wird nicht unterstützt.
- Sollten Sie den Spline-Shader im Zusammenhang mit Fonts verwenden, kann es zu Problemen kommen, wenn die Render-Clients auf verschiedenen Betriebssystemen laufen und nicht exakt dieselben Fonts installiert haben.