Die Grundidee der Subdivision Surfaces ist es eine Fläche aus einem beliebigen Polyeder (dem Kontrollmesh) zu konstruieren, indem jede der Flächen wiederholt unterteilt wird. Wenn die Unterteilung entsprechend durchgeführt wird, ist die Grenze dieses Unterteilungsprozesses eine glatte Oberfläche. Viele Subdivision-Schemata wurden im Laufe der Zeit entwickelt (Loop, Doo-Sabin etc.), aber das Catmull-Clark-Schema gilt bis heute zu den beliebtesten.
Warum bevorzugen Modellierer Subdivision Surfaces gegenüber NURBS?
Eine NURBS-Oberfläche ist, wie jede andere parametrische Oberfläche, darauf beschränkt, Oberflächen darzustellen, die topologisch gleichwertig zu einer Tabellen, einem Zylinder oder einen Torus sind. Da das Kontrollmesh rechteckig ist, wirkt sich die Verfeinerung eines NURBS auf die gesamte Oberfläche aus. Im Gegensatz dazu können Subdivision Surfaces lokal verfeinert werden, indem Punkte zum Kontrollmesh hinzugefügt werden, was dem Modellierer mehr Freiheit gibt. Daher ist die Unterstützung für dieses Primitiv heute in allen High-End-Renderern allgegenwärtig.
Catmull-Clark-Schema.
Diese Subdivision erzeugt drei Arten von Nodes:
Für jede Fläche werden neue Flächen erzeugt, indem diese neuen Nodes wie folgt verbunden werden: Jeder neue Flächennode wird mit den neuen Kantennode der Flächenbegrenzung verbunden. Jeder neue Control Vertex wird mit den neuen Kanten-Node verbunden, die für die mit dem alten Control Vertex einfallenden Kanten erzeugt wurden.
Diese Regeln gelten nur für geschlossene Meshes. Sie müssen für offene Meshes verlängert werden.
Einige schöne Objekte.
Das sieht kompliziert aus und ist es wirklich. Wenn man untersucht, wie diese Regeln funktionieren, kann man eine Reihe von Eigenschaften beobachten:
Das Rendern von Subdivision Surfaces ist komplex: Es ist nicht allzu schwer, Subdivision Regeln zu implementieren, aber die Grenzfläche hat keinen analytischen Ausdruck und das Kontrollmesh kann eine beliebige Topologie aufweisen. Es gibt verschiedene Denkschulen: Einige tesselieren das Kontrollmesh mit Subdivisionregeln weg, bis die resultierenden Polygone klein genug sind, was zu Lasten des beträchtlichen Speicherverbrauchs geht (bei jeder Iteration vervielfacht ein Catmull-Clark-Schema die Anzahl der Polygone), andere versuchen, die Oberfläche mit bikubischen Patches zu approximieren.
Die Subdivision erfolgt spontan mit der erforderlichen Präzision, was Speicherplatz spart und Artefakte vermeidet, aber die Renderzeiten erhöht.
Algorithmus-Übersicht.
Der Algorithmus nutzt die Schema-Eigenschaft von Catmull-Clark, um die Topologie des Kontrollmeshes zu vereinfachen. Es führt eine oder zwei Subdivisionebenen durch, um ein Kontrollmesh aus Quads mit höchstens einem außergewöhnlichen Scheitelpunkt zu erhalten (dies reduziert die Anzahl der Sonderfälle drastisch) und zerlegt das Mesh in einzelne Flächen mit ihrer 1-Nachbarschaft. In den meisten Fällen handelt es sich um regelmäßiges Patches mit 16 Kontrollpunkten. Wenn der Strahl bei der Schnittstellenberechnung die Patch-Begrenzungsbox verfehlt, wird der Patch verworfen, andernfalls wird er unterteilt, bis er flach oder klein genug aussieht. Die Fläche kann dann sicher als bilinearer Patch approximiert werden, das auf Schnittpunkte gecheckt wird.
Schlußfolgerungen.
Die Subdivision Surfaces von Catmull-Clark haben in der 3D-Szene sehr viel Aufmerksamkeit gesorgt und sind auch noch heute sehr popular. Ich hoffe, dass wir ihnen mit diesem Beitrag einen ersten kleinen Einblick in die Grundlagen geben konnten.
Sofern Sie noch Fragen haben sollten, hinterlassen Sie uns unten einen Kommentar.
Vielen Dank für ihren Besuch.