2025

Objekt-Profiler

Sie kennen sicherlich den Effekt, dass große und komplexe Szenen im Handling, Navigieren, der Animation, der Vorbereitungszeit beim Rendern etc. ziemlich zäh werden können. Dabei ist es oft schwierig zu erkennen, wo der Flaschenhals genau sitzt: welches Objekt oder welches Tag ist dasjenige welche, das am meisten Berechnungszeit braucht (s.a. Warum ein Objekt-Profiler?)?

Diese Aufgabe übernimmt jetzt der Objekt-Profiler. Er misst die Berechnungszeiten der einzelnen Objekte und Tags und zeigt sie Ihnen in übersichtlicher Form an. So erkennen Sie auf einen Blick rechenzeitintensive Elemente.

Das kann z.B. so aussehen:

In obigem Beispiel sehen Sie auf den ersten Blick, wer hier der “Übeltäter” ist: mit großem Abstand verbraucht hier das Boole-Objekt die meiste Rechenzeit.

Oben im Fenstertitel sehen Sie die Gesamtrechenzeit (hier 3057.3 Millisekunden ≈ 3 Sekunden) angegeben. Im Fenster selbst - der ein vereinfachter Objekt-Manager ist - sind alle Objekte und Tags samt ihren jeweiligen Rechenzeiten aufgelistet. Dabei sind die Elemente entsprechend der Rechenzeit sortiert. Oben finden sie jeweils die rechenaufwendigsten. Mit dem grünen Haken bzw. dem roten Kreuz können Elemente deaktiviert bzw. wieder aktiviert werden.

Warum ein Objekt-Profiler?

An vielen Stellen ist es wichtig - oder zumindest aufschlussreich - zu wissen, wofür die kostbare Rechenzeit aufgewendet wird. Natürlich ist es z.B. schön und befriedigend, eine voll parametrische Szene gebaut zu haben, die nur 400 kB Speicher auf der Festplatte benötigt, aber in der Ansicht ein äußerst komplexes Objekt erzeugt. Wenn dann allerdings die Bilderrate in der Ansicht auf 1 Bild pro Sekunde einbricht und die Navigation nur mit einer Diaschau zu vergleichen ist, dann ist das einfach unpraktisch. Hierbei kann der Objekt-Profiler helfen, die größten Zeitfresser zu identifizieren und diese z.B.

Wichtig zu wissen

Objekt-Profiler-Befehle und -Einstellungen

Hier werden nur die Befehle und Einstellungen behandelt, die es im Objekt-Manager nicht gibt. Alles andere funktioniert analog zu diesem.

Ansicht-Menü

In Objekt-Manager anzeigen

Die gemessenen Werte können parallel auch direkt im Objekt-Manager eingeblendet werden, sofern Sie diese Option aktivieren. Diese sind dort aber auch nur bei gleichzeitig geöffnetem Objekt-Profiler sichtbar!

Nanu, aber warum sehen Sie im Objekt-Manager 2 Spalten? Diese haben - vereinfacht gesagt - folgende Bedeutung:

Profilmodus

Der Profilmodus ist der vielleicht wichtigste Parametersatz hier im Objekt-Profiler. Versuchen Sie diese 4 Einstellungen möglichst gut zu verstehen, damit Sie wissen, was der Objekt-Profiler eigentlich misst. Dazu muss etwas weiter ausgeholt werden.

Selbst ein einfacher Klick in den Objekt-Manager veranlasst Cinema 4D zu einer Szenenberechnung aller Objekte (“Szenenausführung”). Das wäre für unveränderte, bereits berechnete Objekte natürlich übertrieben: wenn keine Eingangsparameter neu eingegeben wurden (sei es manuell oder animiert), muss ja eigentlich nichts neu berechnet werden. Und das passiert auch nicht, denn solche Objekte wissen normalerweise, ob sie neu berechnet werden müssen oder nicht und geben das so auch an Cinema 4D weiter - das Objekt wird dann aus dem bereits berechneten Cache geholt. Nur, und jetzt kommt das große Aber, der Objekt-Profiler weiß nicht, ob die gemessene Objektzeit jetzt für das bloße Überprüfen eines unveränderten Objekts oder eben doch dessen komplette Neuberechnung gilt. Deshalb gibt es diese vier, weiter unten beschriebenen Modi.

Beispiel

Laden Sie einmal die folgende Szene und öffnen Sie den Objekt-Profiler (Hauptmenü: Fenster | Objekt-Profiler).

Aktivieren Sie dort im Menü unter Ansicht die Option Letzte Ausführung.

In der Szene wirken eine Reihe von Generatoren, die aus einem Kreis-Spline eine Art gezackte Korona erstellt: Aus einem Kreis-Spline macht ein Displacer-Deformer einen gezackten, der mit Hilfe eines Sweep-Objekts ein Polygon-Mesh erzeugt. Dieses Polygon-Mesh konvertiert ein Volumenerzeuger in Voxel, glättet diese etwas, woraufhin ein Volumenmesher schlussendlich das Ziel-Mesh generiert.

Es werden also nacheinander eine Reihe von rechenaufwendigen Prozessen durchgeführt.

Klicken Sie jetzt mehrfach in einen leeren Bereich des Objekt-Managers - oder auch Objekt-Profilers - und beobachten Sie die gemessenen Zeiten im Objekt-Profiler (Abbildung links).

Danach drücken Sie jetzt mehrfach die Taste A (Abbildung rechts). Es ergeben sich auf einem Mittelklasse-PC (2024) in etwa folgende Zeiten:

Es zeigen sich hier dramatisch unterschiedliche Zeiten. Warum das?

Beim Klick in den Manager wird eine Szenenausführung unter Berücksichtigung aller Caches und Rechenzeit sparender Maßnahmen ausgeführt. Das geht sehr schnell. Im zweiten Fall (Taste A = Neuzeichnen) wird eine komplette Szenenausführung veranlasst, wobei jedes Objekt neu berechnet wird. Das passiert z.B. automatisch, wenn Sie eine Szene laden, hierbei kann Cinema 4D noch auf keine Caches (es sei denn, Sie haben diese explizit vorher mit abgespeichert) zurück greifen, sondern muss alles zunächst berechnen.

Das nur zum Unterschied, wie dramatisch verschiedenen gemessene Zeiten sein können.

Letzte Ausführung

In diesem Modus wird die Dauer der letzten Szenenausführung angezeigt. Und das quasi in Echtzeit, d.h. wenn Sie mit der Maus irgendwohin klicken oder in der Ansicht einfach nur über die Szene fahren, oder wann immer Cinema 4D eine neue Szenenausführung durchführt, wird das direkt angezeigt. D.h. es kann passieren, dass sich die Werte hier laufend ändern und die eine für sie wichtige Messung geht evtl. unter. Siehe auch Beispiel, wo dieser Modus verwendet wird.

Aktuelles Bild

Dieser Modus gilt pro (Animations-)Bild. Von den unter Umständen zahlreichen Szenenausführungen, die pro Bild passieren, wird immer nur das Ergebnis mit der längsten Berechnungszeit angezeigt, langsamere werden direkt überschrieben. Wechseln Sie das (Animations-)Bild, wird die vorherige Maximalzeit gelöscht und von vorne begonnen.

Das Problem hierbei: Sie ändern z.B.bei einem Volumenerzeuger die Voxelgröße um auszuprobieren, wie sich das auf die Rechenzeit auswirkt. Im Modus Aktuelles Bild würde Ihnen keine kürzere Zeit angezeigt. Dazu schalten Sie dann in den nächsten Modus:

Aktuelles Bild nach Bearbeitung

Funktioniert ähnlich wie Aktuelles Bild, nur dass bei jeder Änderung von Ihnen an einem Objekt oder Tag neu gemessen wird. D.h. Sie sollten diesen Modus verwenden, wenn Sie den Einfluss von Parameteränderungen studieren wollen, da dann auch - im Gegensatz zur vorherigen Option - sich verringernde Zeiten angezeigt werden.

Alle Bilder

In diesem Modus schlussendlich geht es um das Entdecken von Zeitfressern über eine ganze Animation hinweg. Lassen Sie die Animation dazu einmal komplett durchlaufen (s.a. Tipp unten).

Es werden laufend die maximalen Elementberechnungszeiten pro Bild ermittelt (also wie es Aktuelles Bild für den aktuellen Zeitpunkt auch macht), wobei der Objekt-Profiler immer nur das bis zu diesem Zeitpunkt ermittelte Maximum anzeigt. Startet die Animation von vorne, wird das angezeigte Maximum ebenfalls zurückgesetzt.

Stellen Sie sich vor, in Bild 67 wird ein zuvor deaktivierter Remesher per Animation angeschaltet. Dessen Rechenzeit wird in den Bildern 0-66 natürlich nicht angezeigt. Deshalb ist eine Messung über die gesamte Animation von Nöten, damit alles berücksichtigt werden kann.

Tipp: Im Modus Alle Bilder ist es hilfreich, folgende Einstellungen vorzunehmen:
  • Setzen Sie den Abspiel-Modus (z.B. im Hauptmenü: | Animieren | Abspiel-Modus) auf Einfach, damit die Animation im letzten Bild anhält; startet die Animation von vorne, würden bereits gemessene Zeiten wieder gelöscht.
  • Setzen Sie die Bilder-Rate (z.B im Hauptmenü: | Animieren | Bilder-Rate) auf Alle Bilder, damit keine Animationsbilder übersprungen werden und deren Messergebnisse im Objekt-Profiler fehlen.

Einheit

Definieren Sie hier die Art und Weise, wie die Zeitmessungen angezeigt werden sollen.

Zeit

Die Zeiten werden in ms (Millisekunden = tausendstel Sekunden) angezeigt.

Prozentsatz

Hier werden die einzelnen Elemente immer als Anteil der Gesamtmesszeit in Prozent angezeigt

Dynamisch

Hier werden die Zeiten entweder in “ms” (Millisekunden = tausendstel Sekunden) oder “µs” (Mikrosekunden = millionstel Sekunden) angezeigt. Sollte die Anzeige in “µs” vierstellig werden, wird automatisch auf “ms” umgeschaltet.