Team Render
Allgemeines
Alle verifizierten (grünen) Rechner können beim
Rendern beteiligt werden. Suchzeile und Filter sind hier eingeblendet.
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:
Hier rendern 4 Rechner an einem Einzelbild
(verschiedenfarbige Buckets per Option
Farbe anzeigen hier aktiviert).
Wenn Sie mit mehreren Rechnern an einer Animation rendern, nimmt sich im Gegensatz zur Einzelbildberechnung
jeder Client-Rechner jeweils ein eigenes Animationsbild vor.
Tipp:
Wenn Sie zumindest einen Team Render-Client per Installer installiert haben, so können Sie dieses
Programmverzeichnis komplett auf andere Rechner kopieren, ohne dort jeweils vom Installations-Datenträger
installieren zu müssen.
Hinweis:
Auf Wunsch kann auch ein Team Render Server gestartet werden, der die Team Render Funktionalitäten ferngesteuert
über eine Webseite zur Verfügung stellt. Näheres hierzu finden Sie unter
Der Team
Render Server.
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 Projekte/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 Projektdatei auf alle Texturen/XRefs/Assets oder sonstige externe Dateien
Zugriff hat, werden die Dateien automatisch an alle Rechner verteilt und mit dem Rendern begonnen.
Hinweis:
In den folgenden Beschreibungen ist des Öfteren von Server und Render-Clients die Rede:
- 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 Projektdatei verwendete Plug-ins und andere Bestandteile (z.B. Houdini-Versionen, falls
verwendet; kurz 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 Projekten 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).
- Projekte 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") das komplette Projekt 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. Projektdateien, 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-Projekten
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.