Nurbs-Modeling

Theorie und Praxis

In diesem Kapitel soll auf die Materialeigenschaften sowie auf die problematische Implementierung von Nurbs in 3ds max eingegangen werden.

Virtuelle Charaktere

Mit fotorealistischen Charakteren in 2k-Sphären assoziiert man glatte, organische Formen sowie eine dynamische Auflösung der Geometrie - früher eben Nurbs! Vor einigen Jahren war Nurbs eines der Features, über das sich Alias Wavefront und Softimage als professionelle 3D-Packages im High-End-Bereich von 3ds max und Lightwave abgesetzt haben. Dieses Defizit wurde erkannt und durch die Implementierung von Nurbs in Version 2.0 (jedoch erst in Version 3.0 abgeschlossen) “nachgebessert”, mit dem Ziel, das polygon-orientierte Max zu einem ernst zu nehmenden Konkurrenten zu erheben. Obwohl der Umfang der Funktionalität von Nurbs ständig weiter verbessert wurde, ist es nie wirklicher Bestandteil des Programms geworden und erinnert vielmehr an ein komplexes und schlecht eingeeingebundenes Plugins. Zum einen ist ein “Seamless Character” nur mit sehr viel Aufwand zu konstruieren, und zum anderen funktionieren viele der von uns benötigten Modifier oder Plugins nicht in Kombination mit Nurbs. Wenn wir also mehr Zeit für diesen Ansatz benötigen und im Endeffekt sowie alles in Polys umwandeln müssen, wozu Nurbs dann überhaupt verwenden? Der anfängliche Nachteil der schlechten Nurbs-Integration gegenüber anderen Packages hat sich mit der Einführung von Subdivision-Surfaces (“Smoothed Polygonal Modeling”) und den Surface-Tools mittlerweile in Wohlgefallen aufgelöst. In einem Gespräch mit Jeremy Birns, Autor von “Digital Lighting und Rendering”, über seine Tätigkeit als Technical Director in dem Filmprojekt “Evolution” vertrat dieser die Meinung, dass selbst in Hollywood-Produktionen keine zwingende Notwendigkeit mehr für den Einsatz von Nurbs für fotorealistische Figuren besteht. Durch die Angleichung der optischen Qualität in den letzten Jahren entscheidet heute vielmehr die Wahl der Software über die Wahl des Materials.

Nurbs in Maya

Die Annahme vieler Max-User, dass wirkliche High-End-Charaktere Nurbs-basiert sein müssen, ist ein Mythos. Der Aufbau eines realistischen Kopfes mit Nurbs-Flächen in Maya ist selbst für erfahrene Benutzer kein leichtes Unterfangen. Das Objekt wird aus einer Vielzahl von einzelnen Nurbs-Patches, begrenzt von 4 CV-Curves, aufgebaut. Das klassische Patch- Modeling in 3ds max ist diesem Ansatz nachempfunden. Die Problematik besteht darin, die Anzahl der aufeinander treffenden UV-Curves verschiedener Patches aufeinander abzustimmen, um eine saubere Surface-Continuity zu erhalten. Hierfür werden die UV-Parameter der einzelnen Patches “rebuilded” (mit neuen UVParametern versehen), nach Möglichkeit aneinander “attached”, erneut “rebuilded” und anschließend wieder “detached”. Das Muster so erhaltener, zueinander homogenen Surfaces wird dann auf die nächsten Patches ausgeweitet. Das “Global Stitch”-Tool hilft, die Grenzen der einzelnen Nurbs-Oberflächen aufeinander abzustimmen. Ein solches Multi Patch-Objekt kann schnell aus 30 einzelnen Nurbs-Patches bestehen und dadurch Echtzeit im Viewport in weite Ferne rücken. Dementgegen steht die optimal steuerbare “Tesselation” (Auflösung) von Nurbs, durch die wiederum die Performance beeinfl usst wird. “Blend-Shapes” (das Morpher-Äquivalent) lassen sich selektiv auf einzelne Patches anwenden. Auch wenn Nurbs-Patches perfekte Texturkoordinaten liefern, muss jedes der verwendeten Patches einzeln texturiert werden. Ohne zusätzliche Tools kann dies, insbesondere bei “Seamless Textures”, sehr aufwändig sein. Alles in allem benötigt man für Nurbs-Charaktere viel Zeit und Übung. Aus diesem Grund werden auch in Maya, abgesehen von sehr aufwändigen Produktionen, häufig polybasierte Objekte eingesetzt.

Notwendigkeit von Nurbs

Auch wenn wir an dieser Stelle bereits wissen, dass Nurbs und virtuelle Charaktere in 3ds max nicht wirklich zusammenpassen, verlangen technische Anwendungen wie z. B. “Reverse Prototyping” nach diesem Material. Hier geht es nicht um das Ungefähr von organischen Formen, sondern um exakte Rekonstruktion. Wir brauchen also Werkzeuge, die es uns ermöglichen, Vorgaben, wie z. B. technische Zeichnungen, präzise nachbauen zu können. Die hierfür angebotenen Funktionen orientieren sich an den Programmen, bei denen Nurbs derart integriert sind wie Polygone bei 3ds max. Vergleiche bezüglich der Funktionalität mit den Vorbildern liegen also nahe. Viele der Nurbs- Funktionen und insbesondere die Performance sind bis heute im besten Falle als “aufgesetzt” und äußerst unzufrieden stellend zu bezeichnen.

Anfang 2003 erhielt ich beispielsweise folgenden Auftrag: der exakte Nachbau des Prototypen einer Digitalkamera. Das 3D-Modell sollte optisch nicht von dem physischen Modell zu unterscheiden sein. Natürlich gab es bereits CAD-Daten, diese wurden jedoch aus Sicherheitsgründen nicht herausgegeben. Aufeinander treffende und ineinander übergehende Wölbungen genau nachzuahmen, Teilbereiche sauber auszuschneiden und exakt gerundete Übergänge zwischen mehreren Flächen zu erstellen, beschreiben nur einige der Probleme, mit denen ich mich konfrontiert sah. Irgendwie hätte ich die Kamera vielleicht auch mittels Poly- oder Patch-Modeling realisieren können, jedoch nicht in einem annehmbaren Zeitrahmen. Aufgrund der erforderlichen Funktionen, um das komplexe Gehäuse detailgetreu konstruieren zu können, schwenkte ich also auf Nurbs um. Das war ein Fehler! Funktionen werden entweder überhaupt nicht erst angeboten (z. B. zur Winkelberechnung etc.), leisten nicht, was sie versprechen, oder lassen in puncto Performance dermaßen zu wünschen übrig, dass an ein vernünftiges Arbeitstempo nicht zu denken ist. Als Folge dessen musste ich erneut umdisponieren. Ich empfehle in solchen Fällen, wo Nurbs tatsächlich benötigt werden, in Rhino3D zu modellieren und die Objekte dann als Mesh zu exportieren, da Max mit den Nurbs-Originalen nicht zurechtkommt.

Nurbs-Performance in Max

Wer dennoch nicht auf Nurbs verzichten möchte, sollte in jedem Fall die ausführliche Online-Hilfe von Max konsultieren. Folgende Tipps können die Performance von Nurbs verbessern:

  • CV-Curves und -Surfaces sind scheller als das Point-Äquivalent. Falls Point-Curves verwendet werden, sollte die daraus resultierende Oberfläche in eine CV-Surface umgewandelt werden.
  • U-Lofts sind weniger rechenintensiv als UVLofts.
  • Wie auch bei anderen Modellierungsansätzen sollte bei symmetrischen Objekten nur eine Hälfte aufgebaut werden. Der fehlende Teil kann anschließend durch eine Spiegelung erstellt und über Blend Surface oder Ruled Surface mit dem Original verbunden werden.
  • “Independent” ist schneller als “dependent”. Wann immer möglich, sollte eine Oberfläche “independent” gemacht werden.
  • “Trim Holes”, einer der Gründe, warum man auf Nurbs zurückgreift, sollten in der Modellierung nur äußerst sparsam verwendet werden, da diese extrem rechenaufwändig sind.
  • Mit dem Shortcut (ª)+(Strg)+(T) werden “Trim Holes” im Viewport nicht angezeigt, erscheinen aber weiterhin im Rendering.
  • “Shaded Lattice” in Kombination mit der Checkbox Nonrelational Stack beschleunigt die Performance während der Animation.
  • Mit dem Shortcut (Strg)+(X) werden Nurbs- Surfaces im Viewport nicht dargestellt, wenn diese bewegt, rotiert oder skaliert werden.
  • Mit dem Shortcut (Strg)+(D) werden “Dependent Surfaces” im Viewport nicht dargestellt, wenn neue Surfaces erstellt oder vorhandene bewegt, rotiert oder skaliert werden.
  • Wenn man längere Zeit mit einem Nurbs- Modell arbeitet, läuft der Arbeitsspeicher schnell zu. Ist dieser belegt, wird der virtuelle Speicher hinzugezogen, und alles wird sehr langsam. Einfach Max neustarten und im Task-Manager überprüfen, ob die beendete Version nicht im Hintergrund weiterläuft und Ressourcen blockiert.
  • Bei der Verwendung von “Texture Surfaces” sollten so wenige UV-Rows und -Columns wie möglich verwendet werden.
  • Die “Surface Approximation” sollte in den Viewports so gering wie möglich gehalten werden. In den Render-Settings sollte darüber hinaus die Checkbox View Dependent aktiviert werden, damit von der Kamera weit entfernte Objekte schneller berechnet werden können.
  • Mit Hilfe der “Surface Approximation” Utility können maßgeschneiderte Settings abgespeichert und auf mehrere Nurbs-Modelle übertragen werden.

Fazit zu Nurbs

Nurbs ist ein unheimlich mächtiger Modellierungsansatz und sollte auf jeden Fall erlernt werden – jedoch nicht in 3ds max! Diese Technik ist nach wie vor ein aufgesetzter und eben nicht wirklich implementierter Programmteil. Wer Nurbs unbedingt verwenden möchte oder dies aufgrund spezieller Anforderungen muss, sollte zumindest für bestimmte Projektphasen das Package wechseln. Poly- und Patch-Modeling sind für die Modellierung und Animation von Charakteren in 3ds max einfach besser geeignet.