Cinema 4D Grundfunktionalitäten Erzeugen-Menü Generator Subdivision Surface
Funktion verfügbar in CINEMA 4D Prime, Visualize, Broadcast, Studio & BodyPaint 3D
Subdivision Surface

Basis Koord. Objekt

Objekt-Eigenschaften

Typ

Sie finden unter Typ mehrere Modi, deren Unterschiede hier kurz beschrieben sind:

Catmull-Clark

N-Gons werden erst nach interner Triangulation unterteilt. Punkte-, Kanten- und Polygon-Wichtungen werden unterstützt. Wenn Sie Subdivision Surfaces (bzw. LowPoly-Modelle) in andere Programme exportieren wollen, fahren Sie mit diesem Typ am sichersten, da Catmull-Clark weit verbreitet ist und das geglättete Objekt dort annähernd gleich beschaffen sein wird.

Catmull-Clark (N-Gons)

Dieser neue Typ unterteilt N-Gons korrekt und unterstützt Wichtungen. Dieser Typ hat Probleme mit "C"-förmigen N-Gons und kann mit N-Gon-Löchern nicht umgehen.

Beispiel

Jeweils von links nach rechts: ungeglättetes Ausgangsobjekt, Typ: Catmull-Clark, Catmull-Clark (N-Gons).
Funktion verfügbar in CINEMA 4D Prime, Visualize, Broadcast, Studio & BodyPaint 3D

OpenSubdiv

In Cinema 4D R18 wurden einige neue Subdivision Surface-Algorithmen integriert. Subdivision Surfaces ist eine Technik, die es bereits seit den späten 70er Jahren gibt. Im Laufe der Jahre wurde diese Technik von verschiedenen Software-Paketen unterschiedlich implementiert und z.B. durch Einführung von Punkt-, Kanten- und Polygon-Wichtungen weiter ausgebaut. Dabei kam es immer wieder zu Inkompatibilitäten zwischen den verschiedenen Applikationen. Die Firma Pixar hat daher aus Gründen der Kompatibilität ihre Subdivision Surface-Implementation freigegeben. Die entsprechenden Open Source-Bibliotheken sind unter dem Namen OpenSubdiv frei verfügbar.

In Cinema 4D sind diese als 3 neue Typen integriert.

Durch Grafikkarten-unterstützte Tessellation (Zerlegen von Polygonen in kleinere Dreiecke; im Folgenden "GPU-Tessellation" genannt, implementiert im Typ OpenSubdiv Catmull-Clark (Adaptiv)) können hoch unterteilte Objekte schneller als bisher in der Ansicht dargestellt werden. Damit kann z.B. eine Charakter-Animation mit höherer Unterteilung als bisher flüssig dargestellt werden. Allerdings auch nur dort. Rendern lässt sich die GPU-Tessellation nicht!

Beachten Sie diese Punkte:

  • Modellieren mit den OpenSubdiv-Typen ist gegenüber den älteren Typen verlangsamt.
  • Wichtungen wirken sich bei den OpenSubdiv-Typen im Detail etwas anders aus. Im Großen und ganzen ähnlich, aber doch unterschiedlich. Der größte Unterschied ergibt sich bei den Punktewichungen, die im Extremfall nicht in Spitzen enden:

Punkte werden bei OpenSubdiv Catmull-Clark anders gewichtet.

Die Kantenwichtung ist etwas präziser als bei den älteren Typen. Sie lässt sich im Bereich großer Wichtungen (also bei knapp unter 100%) exakter justieren.

OpenSubdiv Catmull-Clark

Dieser Typ entspricht dem alten Typ Catmull-Clark in der Pixar-Implementation mit den oben erwähnten Unterschieden. Wird nicht gewichtet oder keine OpenSubdiv-spezifische Funktionen verwendet, entspricht das Ergebnis haargenau Catmull-Clark.

Es werden im Gegensatz zum nächsten Typ ausschließlich viereckige Polygone erzeugt.

OpenSubdiv Loop

Dieser Typ ist für spezielle Pipelines (z.B. in der Spieleentwicklung) vorgesehen. Er ist dafür ausgelegt, Dreiecke zu verarbeiten; sollten Vierecke enthalten sein, werden diese vor der Glättung trianguliert. Das unterteilte, geglättete Objekt besteht seinerseits nur aus Dreiecken. Das Unterteilungsverfahren unterscheidet sich von den normalen Catmull-Clark-Typen:

So unterteilen Catmull-Clark (oben) und OpenSubdiv Loop(unten) mit verschiedenen Unterteilungen und Objekten.

Punkte-, Kanten- und Polygonwichtung funktionieren ebenfalls in diesem Modus.

OpenSubdiv Bilinear

Dieser Typ macht prinzipiell das gleiche, wie der Befehl Unterteilen mit deaktivierter Option Weiche Unterteilung. Er unterteilt, glättet aber nicht, stellt also eine Art zerstörungsfreie (d.h. jederzeit zurücknehmbare) Unterteilung dar.

OpenSubdiv Catmull-Clark (Adaptiv)

Mittels dieser Option kann eine spezielle auf der GPU berechnete Tessellation angeschaltet werden (die Formgebung ist ähnlich zu OpenSubdiv Catmull-Clark).

Es sei nochmal darauf hingewiesen: die im Editor sichtbare GPU-Tessellation steht nicht als Geometrie zum Rendern zur Verfügung.

Hinweis:
Sollten Sie trotzdem rendern, wird intern auf OpenSubdiv Catmull-Clark umgeschaltet, was zu unterschiedlichen Ergebnissen führen kann.

Deformer oder Generatoren haben ebenfalls keinen Zugriff auf die GPU-Tessellation: die z.B. bei der Charaktereranimation verwendeten Deformer wirken auf das niedrig unterteilte Käfig-Objekt, das erst in einem zweiten Schritt danach unterteilt und somit hoch aufgelöst im Editor dargestellt werden kann. Die Deformer können bei der GPU-Tessellation nicht direkt auf das hoch unterteilte Subdivision Surface wirken.

Die GPU-Tessellation verwendet, wie der Parametername schon verheißt, eine adaptive Unterteilung, d.h. dort, wo es nötig ist – an Ecken, Kanten etc. – wird höher unterteilt, während in flachen Bereichen eine niedrigere Unterteilung vorgenommen wird.

Links normale Unterteilung, rechts zusätzlich GPU-Tessellation.

Dazu muss die Editor-Unterteilung schon recht hoch gestellt sein, während GPU Tessellation Level auf kleinen Werten steht.

Je schneller (vergessen Sie nicht, Ihre Grafiktreiber auf aktuellem Stand zu halten) Ihre Grafikkarte ist, desto flüssiger geschieht die Darstellung im Editor.

Displacement kann dieser Modus derzeit nicht darstellen.

Unterteilung Editor [0..6]
Unterteilung Renderer [0..6]

Hier können Sie die Unterteilung für die Darstellung im Editor und für die endgültige Berechnung im Renderer (Raytracing) einstellen. Für die Berechnung im Renderer sollten Sie grundsätzlich eine höhere oder dieselbe Auflösung wie für den Editor wählen. Je höher die Auflösung, desto weicher wird das Objekt. Allerdings wird dadurch die Berechnung (bzw. die Darstellung im Editor) langsamer und der Speicherverbrauch höher.

Ausgangsobjekt, Subdivision-Surface-Unterteilung 1,2 und 3

Unterteilung UVs

Mit diesem Menüpunkt nehmen Sie Einfluss auf das UV-Mesh der Nicht-OpenSubdiv-Typen.

Die Problematik bestand früher darin, dass es in Fällen der Angrenzung von kleinen Polygonen an großen Polygonen zu Sprüngen im Textur-Mapping (wenn das bemalte LowPoly-Modell in ein Subdivision-Surface-Objekt gelegt wurde) kam. Mit den beiden neuen Optionen Grenze und Kante (Standard entspricht der früheren Funktionalität) wird das UV-Mesh quasi mit durch den Subdivision-Surface-Algorithmus geschickt und dementsprechend unterteilt.

Hinweis
Bei Grenze oder Kante kann es passieren, dass Teile der Textur auf dem Objekt verschwinden, da das UV-Mesh verändert wird.

Beispiel

Angenommen Sie bemalen (oder belegen ihn wie hier mit dem Karo-Shader) den linken Würfel als LowPoly-Modell, der noch nicht im Subdivision-Surface-Objekt liegt. Der Würfel sieht dann aus wie bei 2.. Nachdem Sie stundenlang künstlerisch tätig waren, legen Sie den Würfel in das-Surface-Objekt und erstarren vor Schreck: Die Textur wird total verzerrt (3.) abgebildet.

Jetzt kommen die beiden neuen Optionen zum Einsatz (probieren Sie aus, welche der beiden für Sie am besten funktioniert). Bei diesem Beispiel wurde Kante gewählt, was die ursprünglichen Außenkanten des UV-Meshs erhält.

Funktion verfügbar in CINEMA 4D Prime, Visualize, Broadcast, Studio & BodyPaint 3D

UVs unterteilen

Für die OpenSubdiv-Typen gibt es eigene Einstellungen dafür, wie beim Unterteilen mit den UV-Koordinaten umgegangen werden soll. Die Einstellungen beziehen sich dabei auf UV Inseln und wie mit innen- und außenliegenden UV-Ecken umgegangen werden soll. Es gibt diese Optionen ("Linear" heißt hier: lineare Interpolation (= keine Glättung, nur Unterteilung) in den entsprechenden Bereichen):

  • Linear, Randkanten: die lineare Interpolation erfolgt nur entlang des Randes der UV-Inseln, der Umriss bleibt also erhalten, das Innere wird geglättet.
  • Linear, Alle: es erfolgt eine ausschließlich lineare Interpolation innen und außen, es wird überhaupt nichts geglättet, der Umriss der UV-Inseln bleibt konstant.

Randkanteninterpolation

Legen Sie hiermit fest, ob Ecken geglättet werden sollen oder nicht. Was sind Ecken? Ecken sind Punkte, die nur zu einem einzigen Polygon gehören. Beachten Sie in der Abbildung, wie beim Ausgangsobjekt z.B. die Ecken rechts unten bei Auswahl von Kante und Ecke nicht geglättet werden.

Kante

Sämtliche Ecken werden geglättet.

Kante und Ecke

Ecken werden nicht geglättet.

Dreiecksunterteilung

Diese Einstellung gilt nur für Dreiecke des Käfig-Objekts. Catmark ist die gewohnte Glättung, die etwas eckiger ausfallen kann, während Weich runder und harmonischer glättet.

Kantenfaltung

Die links markierten Kantenwichtungen und deren geglättetes Resultat.

Mittels dieser Einstellung kann der Übergang verschieden stark gewichteter Kanten zueinander beeinflusst werden. Bei Gleichmäßig ist die Glättung über die einzelne Kante ziemlich konstant, was die Übergänge zwischen verschiedenen Kantenwichtungen abrupter geschehen lässt, während bei Chalkin versucht wird, die Glättung homogener ineinander übergehen zu lassen.

Adaptive (GPU) Tessellation [1..10]

Hiermit regulieren Sie die Tessellations-Stärke. Die Ausgangs-Editor-Unterteilung wird als Grundlage genommen, die die GPU-Tessellation weiter unterteilt. Aufgrund der adaptiven Funktionalität kann die Unterteilung in gewissen, unkritischen (flachen) Bereichen gegenüber der erstgenannten Unterteilung reduziert werden (s. Abbildung oben bei OpenSubdiv Catmull-Clark (Adaptiv)).

Die hier einzustellenden Werte sind nicht limitiert. Allerdings wird nur bis zu einer bestimmten, von der Leistungsfähigkeit ihrer Grafikkarte abhängigen Grenze unterteilt. Wenn Sie höhere Werte wählen, wird keine weitere Unterteilung vorgenommen.

R12-Kompatibilität

Seit Cinema 4D R13 gibt es eine verbesserte Punkt- und Kantenwichtung. Beim Einladen älterer Szenen mit entsprechender Wichtung gibt es diese Option zur Erhaltung der Kompatibilität. Das Subdivision-Surface-Objekt glättet dann wie vor Urzeiten gewohnt.