Der Modeller K-3D

Aus LinuxUser 05/2007

Der Modeller K-3D

Virtueller Steinmetz

3D-Modelling ist schwierig, so lautet das verbreitete Vorurteil. Der Modeller K-3D beweist das Gegenteil.

Wer von einer freien 3D-Modelling- oder 3D-Animationssoftware spricht, meint in der Regel Blender. Tatsächlich ist dies mit Abstand die leistungsfähigste Open-Source-Anwendung für räumliche Simulationen. Allerdings erschwert Blender dem Anwender mit zahlreichen unter der eigenwillig gestalteten Oberfläche verborgenen Funktionen die Bedienung. Zudem ergibt sich bei der Arbeit mit Blender oft das Problem, dass sich die einzelnen Schritte, die für ein komplexes räumliches Modell erforderlich sind, nachträglich nicht mehr nachvollziehen lassen, geschweige denn verändern.

Ganz anders beim freien Modeller K-3D [1]: Er nutzt eine parametrisches Modelling genannte Technik. Dabei behält der Anwender während des gesamten Bearbeitungsvorgangs alle Arbeitsschritte im Blick und kann auch nachträglich noch Veränderungen vornehmen. Besonders bei komplexen 3D-Szenen, die sehr viele Schritte erfordern, erleichtert das parametrische Prinzip die Arbeit. Daher kommt es auch bei professionellen CAD-Programmen zum Einsatz, mit denen Industriedesigner die Formen von Kaffeemaschinen, Staubsaugern oder Flugzeug- und Autoteilen als Prototypen auf dem Computer entwickeln.

K-3D-Pakete für Suse 10.2 hält Opensuse.org bereit [2], RPMs für Mandriva finden Sie bei Nyvalls.se [3]. Ubuntu enthält ein passendes Paket im Universe-Repository, bei Fedora Core 7 werden Sie in den Extras fündig.

Lange Leitung

Das Grundprinzip des parametrischen Modelling, wie es K-3D benutzt, beruht auf der so genannten Pipeline: Fügt der Anwender beispielsweise einen Würfel in die Szene ein (Reiter Create in der Buttonleiste, erster Schalter von links), dann entstehen in der Node List – also der Übersicht über alle Objekte in der Szene – zwei neue Einträge: ein Poly Cube und ein Poly Cube Instance, obwohl in der Szene selbst wie erwartet nur ein neues Objekt zu sehen ist.

Die Node History unter der Node List zeigt beiden Objekte in einer hierarchischen Abhängigkeit: Der Poly Cube hängt vom Poly Cube Instance ab. Welchen Sinn dies hat, wird klar, wenn Sie den Würfel mit Modifiern verändern: Wählen sie Modify | Mesh | BevelPoints aus dem Menü. Der Würfel in der Szene erhält dadurch abgeschrägte Ecken. In der Node History hat sich der neue Eintrag BevelPoints zwischen den Poly Cube Instance und den Poly Cube geschoben (Abbildung 1).

Abbildung 1: K-3D speichert alle an einem Objekt vorgenommenen Veränderungen in einer so genannten Pipeline. Die Einstellungen für alle Arbeitsschritte lassen sich jederzeit nachträglich anpassen.

Abbildung 1: K-3D speichert alle an einem Objekt vorgenommenen Veränderungen in einer so genannten Pipeline. Die Einstellungen für alle Arbeitsschritte lassen sich jederzeit nachträglich anpassen.

Ergänzen Sie einen weiteren Modifier: Modify | Mesh | LinearPointNoise fügt der Position der Eckpunkte des Würfels ein Zufallsrauschen hinzu. Die Node History enthält den zusätzlichen Eintrag LinearPointNoise. Wählen Sie diesen nun aus. Im Node Properties Fenster darunter erscheinen die entsprechenden Einstellungen. Deaktivieren Sie nun nacheinander die Kontrollkästchen Use X, Use Y und Use Z: Damit unterbinden sie die Verschiebung in X-, Y- und Z-Richtung des Koordinatensystems. Aktivieren Sie nun in der Node History den Eintrag BevelPoints. In den Node Properties verändern Sie den Werte des Felds Offset, was die Größe der Abschrägungen verändert.

Wenn sie möchten, können Sie nun den Zufallsfaktor über Use X, Use Y und Use Z wieder einschalten. K-3D wendet die Zufallsverschiebung auf den Körper mit den angepassten Abschrägungen an. Hier kommt das Pipeline-Prinzip zum Tragen: Alle Zwischenschritte zwischen PolyCube und PolyCube Instance addieren sich wie in einer Rohrleitung, in der dass Wasser alle Rohrsegmente nacheinader durchfließt. Anfang und Ende einer Pipeline bilden stets eine geometrische Grundform (Cube = Würfel, Sphere = Kugel, Torus = Ring sowie Polygonal Grid, ein netzförmig unterteilte Fläche) und ein Instance-Objekt. Nur letzteres, die Endstufe der Pipeline, zeigt K-3D in der Szene an. Alle Schritte zwischen Grundform und der Instanz der Grundform lassen sich in der Node History jederzeit zum Anpassen der Parameter auswählen. Daher heißt dieses Modelling-Prinzip auch parametrisches Modelling.

Ab in die Praxis

Um einen Eindruck davon zu bekommen, wie die Pipeline und das parametrische Modellieren in der Praxis funktionen, ist es nun an der Zeit, eine erste Grafik mit K-3D zu erstellen: Das antike Säulenfragment in der Aufmachergrafik entsteht in wenigen Arbeitschritten. Beim Modellieren lernen Sie die Stärken des freien Modellers kennen, stoßen allerdings auch auf einige Schwächen.

Erstellen Sie zunächst mit File | New eine neue, leere Szene. Ein Klick auf das vierte Symbol im Reiter Create in der Schalterleiste fügt ins Zentrum der Szene einen Zylinder ein. Noch schneller geht es durch einen Druck auf [F6]. Ein Klick auf das Ring-Symbol (rechtes Symbol der ersten Button-Gruppe im Reiter Create) fügt einen Ring ein, der für den Sockel der Säule bereits richtig skaliert ist. Allerdings sitzt er in der Mitte des Zylinders, nicht, wie er sollte, am unteren Ende. Da sich der Zylinder zur Hälfte unterhalb der als Gitter dargestellten Bodenebene befindet, ziehen wir ihn nach oben und belassen den Ring an der Stelle, an der er sich nach dem Einfügen befindet.

Im Raum bewegen

Beim Modellieren ist es immer wieder erforderlich, bestimmte Teile eines Körpers (Unterflächen, die Maschen des Drahtgeflechts oder einzelne Gitterpunkte) auszuwählen. Das Auswählen-Werkzeug, das Sie über das schwarze Pfeilsymbol ganz links oben in der Schalterleiste (Abbildung 2, oben links) aktivieren, kennt daher vier verschiedene Modi: Objektauswahl, Punktauswahl, Linienauswahl und Unterflächenauswahl. Zuständig für diese Einstellung sind die vier rot-grauen Buttons direkt unter dem Werkzeugschalter (Abbildung 2, oben links): Sie benötigen zunächst das linke Symbol (Objektauswahl). Mit diesen Einstellungen klicken Sie auf den zu bearbeitenden Zylinder, dessen Netzmaschen sich dann weiß verfärben.

Um den nun aktiven Körper nach oben zu verschieben, kommt das Verschieben-Werkzeug zum Einsatz (zweiter Button von links in der oberen Reihe, Abbildung 2 oben links). Haben Sie es gewählt, so zeigt K-3D um den Mittelpunkt des aktiven Körpers die bereits erwähnten farbigen Verschiebepfeile, deren Richtung der X-, Y- und Z-Achse entspricht. Ziehen Sie die blaue Z-Achse nach oben, bis der Zylinder nicht mehr unten über den Torus hinausragt. Um zu kontrollieren, ob Ring und Zylinder unten richtig bündig abschließen, drehen Sie den Anzeigeausschnitt ein wenig: Halten Sie dazu die rechte Maustaste gedrückt und bewegen Sie die Maus nach oben, bis Sie schräg von unten auf die Säule blicken. Mit gedrückter mittlerer Maustaste verschieben Sie nötigenfalls den Anzeigeausschnitt, ohne ihn dabei zu drehen.

Abbildung 2: Navigation im 3D-Raum leicht gemacht: Die farbigen Koordinatenachsen unterstützen den Benutzer beim Verschieben eines Objekts in der Tiefe des Raums.

Abbildung 2: Navigation im 3D-Raum leicht gemacht: Die farbigen Koordinatenachsen unterstützen den Benutzer beim Verschieben eines Objekts in der Tiefe des Raums.

Die drei Verschiebepfeile weisen auch nach der Änderung des Anzeigeausschnitts weiterhin exakt in X-, Y- und Z-Richtung. Mit der nun nach der Aktivierung gelben Z-Achse passen sie die Sie die Position des Zylinders nun genauer an, so dass der Bündig mit der Unterseite des Torus abschließt. Drehen Sie dann den Anzeigeausschnitt mit gehaltener rechter Maustaste zurück, so dass sie den Zylinder wieder von der Seite sehen.

Qual der Wahl

Nun ist es Zeit, die Einbuchtungen der Säule zu erstellen. So harmlos diese abgerundeten Vertiefungen auf den ersten Blick wirken mögen: Sie auf dem Computer zu erstellen, ist gar nicht so einfach. Dass K-3D das mit wenigen Arbeitsschritten schafft, stellt die Leistungsfähigkeit der Software unter Beweis.

Im ersten Schritt erzeugen Sie den Wechsel zwischen Vertiefungen und unveränderten Streifen. Dazu wählen Sie die Unterflächen des Zylinders in entsprechenden Streifen aus (Abbildung 3). Aktivieren Sie dazu das Auswahlwerkzeug im Flächenwahlmodus (Abbildung 3, oben links). Ein Klick auf eine Fläche wählt diese aus, bei gedrückter Umschalttaste lassen sich mit der Maus mehrere Flächen aktivieren.

Abbildung 3: Die Auswahl von Unterflächen gelingt in K-3D zügig und intuitiv: Im Flächenmodus aktiviert das Auswahlwerkzeug bei gedrückter linker Maustaste die Netzmaschen wie ein Pinsel.

Abbildung 3: Die Auswahl von Unterflächen gelingt in K-3D zügig und intuitiv: Im Flächenmodus aktiviert das Auswahlwerkzeug bei gedrückter linker Maustaste die Netzmaschen wie ein Pinsel.

Bei der Auswahl vieler Flächen besonders angenehm ist der pinselartige Auswahlmodus, der bei gedrückt gehaltener linker Maustaste aktiv wird: Hier wählt das Werkzeug alle mit dem Mauscursor überstrichenen Flächen aus. Erwischen Sie dabei aus Versehen ein Fläche zu viel, gibt es zwei Möglichkeiten: [Strg]+[Z] macht die Auswahl bis zum letzten abgeschlossenen Pinselstrich rückgängig. Aber auch der Pinselmodus selbst kann eine bestehende Auswahl aufheben: Verschieben Sie dazu die Maus über eine bereits gewählte Fläche und halten sie die linke Maustaste gedrückt. Beginnt der Pinselstrich auf einer bereits aktiven Fläche, so kehrt sich die Wirkung des Pinselstrichs um. Näheres zur Auswahl in K-3D erfahren Sie unter Hilfe | Tutorials in Tutorial Vier (Basic Selection).

Markieren Sie nun wie beschrieben jeden zweiten Gitterstreifen der sichtbaren Vorderseite des Zylinders. Dann drehen Sie mit gedrückter linker Maustaste die Anzeige und fahren mit der Auswahl fort, bis der ganze Zylinder abwechselnd aus markierten und unmarkierten Streifen besteht.

Sauber unterteilt

Um nun die rot eingefärbten Flächen quasi nach innen zu falten, müssen Sie sie erst einmal unterteilen. Modify | Mesh | SubdivideFaces oder [Umschalt]+[K] teilt jede Fläche in vier Unterflächen auf. Im nächsten Arbeitschritt drücken Sie die neu entstandene mittlere Netzmasche in den unterteilten Streifen nach innen – allerdings nicht in ihrer ganzen Länge, sondern nur vom zweiten Segment von oben bis zum vorletzten von unten (Abbildung 4). So ergeben sich die oben und unten flach auslaufenden Vertiefungen.

Abbildung 4: Mit dem Auswahlwerkzeug im Linienmodus wählen Sie die Netzmaschen, die im Zentrum der Kuhlen im Säulenkörper liegen.

Abbildung 4: Mit dem Auswahlwerkzeug im Linienmodus wählen Sie die Netzmaschen, die im Zentrum der Kuhlen im Säulenkörper liegen.

Bevor Sie mit dem Markieren beginnen, entfernen Sie noch die Oberseite des Zylinders, da sich dann die Tiefe der Einbuchtungen nachher besser beurteilen lässt. Wählen Sie dazu in der Node List den Eintrag PolyCylinder und deaktivieren Sie das Kontrollkästchen hinter Top. Aktivieren Sie dann das Auswahlwerkzeug (Pfeilsymbol in der Buttonleiste) und stellen Sie den Modus Select Lines ein (drittes Symbol von Links in der zweiten Reihe der Schalterleiste). Auch in diesem Modus funktioniert der Pinselmodus des Auswahlwerkzeugs. Er hilft jedoch im Moment nicht weiter, da er beim Überstreichen auch immer quer verlaufende Maschen aktiviert.

Markieren Sie daher die in Abbildung 4 rot dargestellten Liniensegmente, indem Sie einzeln bei gedrückter Umschalttaste mit der Maus darauf klicken. Die rechte Maustaste dreht die Anzeige, so dass Sie den ganzen Umfang der Säule bearbeiten können. Ein Zoom mit dem Mausrad erleichtert außerdem die Auswahl. [Strg]+[Z] hilft, falls während der Auswahl etwas schief geht.

Der letzte Schliff

Drehen Sie den Anzeigeausschnitt nun mit der rechten Maustaste so, dass sie leicht schräg von oben auf die Säule blicken (Abbildung 5), und aktivieren Sie das Skalieren-Werkzeug (vierter Button von links in der ersten Reihe der Buttonleiste, Abbildung 5, links oben). Anders als beim Verschieben-Werkzeug tragen die Enden des farbigen Achsenkreuzes nun keine Pfeile, sondern kleine Würfel. Sie dienen als Anfassergriffe für das Skalieren in X-, Y- und Z-Richtung. Hier kommt jedoch der gelbe Würfel zum Einsatz, der die gewählten Objekte in allen Dimensionen zugleich skaliert: Ziehen Sie ihn mit der Maus vorsichtig nach unten, bis die entstehenden dreieckigen Keile sich über knapp 10 Prozent des Säulendurchmessers nach innen erstrecken (Abbildung 5). Sobald Sie die Säule mit der rechten Maustaste wieder aufrichten, sehen Sie, dass die Säule nun Einbuchtungen in der richtigen Größe, jedoch noch in kantiger Form, aufweist.

Abbildung 5: Eine Verschiebung der ausgewählten Gitternetzlinien ergibt die Vertiefungen in der Säule. Für eine Abrundung sorgt der Catmull-Clark-Algorithmus.

Abbildung 5: Eine Verschiebung der ausgewählten Gitternetzlinien ergibt die Vertiefungen in der Säule. Für eine Abrundung sorgt der Catmull-Clark-Algorithmus.

Wählen Sie als nächstes in der Node List den Eintrag PolyCylinder Instance. Suchen Sie unter den Node Properties das Listenfeld Polyhedron render type und stellen Sie den Wert Catmull-Clark ein. Catmull und Clark heißen die Erfinder eines Verfahrens, das Oberflächen aus Polygonen in glatte organische Formen (wie in der Aufmachergrafik) umwandelt. Stellen Sie auch für den PolyTorus Instance in der Node-List eine Catmull-Clark-Oberfläche ein.

Nun fehlt nur noch der Kopf der Säule. Er entsteht aus einem zweiten Zylinder. Fügen Sie ihn mit [F6] ein und verschieben Sie ihn nach oben, so dass er ganz sichtbar ist. Stauchen Sie ihn dann mit dem Skalieren-Werkzeug in Z-Richtung (blaue Achse) zu einer flachen Scheibe. Um die unregelmäßige Oberfläche der Oberseite zu erstellen, müssen Sie zunächst die bisher aus einem Stück bestehende Oberseite unterteilen. Wählen Sie dazu Poly Cylinder 2 aus der Node List und erhöhen Sie unter Node Properties den Wert für Top Segments auf 5. Drehen Sie die Ansicht so, dass Sie von oben auf die Scheibe blicken, und wählen Sie durch Malen mit dem Auswahlwerkzeug im Flächenmodus alle neu entstandenen Segmente der Oberfläche aus. Schalten Sie dann in den Punktauswahl-Modus um, was alle Punkte des Netzes an der Scheibenoberseite aktiviert (Abbildung 6).

Abbildung 6: Ein Zufallsalgorithmus sorgt für eine unregelmäßige Oberflächenform, wie sie in Handarbeit nur mit viel Aufwand zu erstellen wäre.

Abbildung 6: Ein Zufallsalgorithmus sorgt für eine unregelmäßige Oberflächenform, wie sie in Handarbeit nur mit viel Aufwand zu erstellen wäre.

Der Hintergrund für das Umschalten des Modus der Flächenauswahl zur Punktauswahl: Die Auswahl der gesamten Oberseite geht im Flächenwahlmodus einfach schneller. Die Modifikatoren unter Modify | Mesh arbeiten jedoch nur in einem bestimmten Auswahlmodus, der aus ihrem Namen hervorgeht: Da wir nun den LinearPointNoise-Modifier hinzufügen möchten, benötigen wir den Punktauswahl-Modus. SubdivideFaces hingegen haben wir beim Gestalten des Mittelstücks auf eine Flächenauswahl angewandt.

Nach dem Anwenden von LinearPointNoise erhält die Oberfläche eine unregelmäßige Form, wie bei einem gebrochenen Marmorblock. Diese in Handarbeit zu erstellen, wäre viel Arbeit. Dank der leistungsfähigen Plugins in K-3D müssen Sie nach Auswahl des LinearPointNoise-Eintrags in der Node List für die Z amplitude lediglich einen Wert von 10 einstellen, um die verwitterte Oberseite der Aufmachergrafik zu erhalten.

Licht und Schatten

Die vielen Modifier im Modify-Menü (Abbildung 7) stellen eine besondere Stärke von K-3D dar: Mit ihnen lassen sich viele komplexe Formen mit wenig Aufwand erstellen. Kein anderer freier Modeller bietet einen vergleichbaren Leistungsumfang. Alle Einträge in diesem Menü sind als Plugins realisiert, deren Bestand sich mit relativ wenig Aufwand und ohne Kenntnis des gesamten K-3D-Quellcodes erweitern lässt. Weniger gut ist die Dokumentation: Zwar findet sich in der K-3D-Dokumentation [4] eine Erläuterung zu allen Plugins. Die knappe Beschreibung in ein bis zwei Sätzen reicht aber so eben als Einstieg zu eingenen Experimenten.

Abbildung 7: Basierend auf der Plugin-Architektur stehen in K-3D mehr Funktionen zum Formen der räumlichen Drahtgitternetze zur Verfügung, als in allen anderen freien Modellern.

Abbildung 7: Basierend auf der Plugin-Architektur stehen in K-3D mehr Funktionen zum Formen der räumlichen Drahtgitternetze zur Verfügung, als in allen anderen freien Modellern.

Zudem gibt es in K-3D auch Inkonsistenzen, die dem Anwender zusammen mit der dünnen Dokumentation das Leben schwer machen: So ist es nicht möglich, Untereinträge aus der Node-History zu löschen. Sobald der Benutzer dies versucht, verschwindet das zugehörige Objekt aus der Anzeige. Der Hintergrund: Beim Löschen eines Glieds aus der Pipeline reißt diese einfach ab, da die Verknüpfung zwischen der Grundform und der Instance (die die Voraussetzung für die Anzeige eines Objekts ist) verschwindet.

Wer sich die Mühe machen möchte, kann die Verknüpfung manuell wieder herstellen: In den Node Properties symbolisieren die kleinen Steckersymbole die Verknüpfung zwischen den Gliedern der Pipeline. Damit K-3D überhaupt etwas anzeigt, muss hinter dem Symbol für die Input Matrix immer eine Verknüpfung zur Output-Matrix des Objekts stecken, das in der Node-History darunter steht (Abbildung 8). Ein Klick auf dass Steckersymbol erlaubt es, die Verknüpfung neu zu setzen. Die Abfolge Input Matrix auf Output-Matrix ist dabei stets zu beachten. Diese Handarbeit sollte jedoch eigentlich die Software übernehmen.

Abbildung 8: Beta-Charakter: Löscht der Anwender einen Zwischenschritt aus der Pipeline, so muss der die zerrissene Verknüpfung wieder mühsam per Hand herstellen.

Abbildung 8: Beta-Charakter: Löscht der Anwender einen Zwischenschritt aus der Pipeline, so muss der die zerrissene Verknüpfung wieder mühsam per Hand herstellen.

Rendern

Bei der Anzeige im K-3D-Fenster handelt es sich nur um eine Vorschau. Für eine fotorealistische Abbildung müssen Sie das Modell erst noch rendern. K-3D verlässt sich dabei auf externe Programme wie Yafray [5], Povray [6] oder Agsis [7]. Eines davon muss auf dem Rechner installiert sein. Für die Aufmachergrafik kam Yafray zu Einsatz. Für diesen leistungsfähigen Renderer stellen die meisten Distributionen Pakete zur Verfügung.

Um überhaupt rendern zu können, ist mindestens eine Lichtquelle erforderlich. Deren Typ richtet sich nach dem eingesetzen Renderer: Für Yafray reicht für erste Gehversuche ein YafrayPointLight aus, das Sie links vor der Säule platzieren. Beim ersten Klick auf Render fragt die Software nach der zu verwendenden Engine. Create YafrayEngine ist die richtige Wahl für Yafray. Unter dem Eintrag YafrayEngine in der Node List lassen sich Einstellungen wie die Auflösung des Renderings anpassen.

Fazit

K-3D präsentiert sich als leistungsfähige Software zum Erstellen von räumlichen Modellen. Über die Plugin-Architektur stehen viele Funktionen zur Verfügung. Genau wie Highend-CAD-Programme nutzt die Software das parametrische Modelling, bei dem die einzelnen Schritte in der Node History erkenn- und veränderbar bleiben. Dass sich Untereinträge daraus nicht ohne weiteres löschen lassen, unterstreicht ebenso den noch experimentellen Status der Software, wie die recht häufig auftretenden Abstürze. K-3D zeigt dennoch in der aktuellen Version 0.6.6.0 bereits brilliante Ansätze hinsichtlich Bedienbarkeit und Leistungsfähigkeit, über einige Inkonsistenzen gilt es noch hinwegzusehen.

Glossar

parametrisches Modelling

Arbeitsprinzip beim Erzeugen von räumlichen Objekten, bei dem alle Arbeitsschritte ständig sichtbar und nachträglich veränderbar bleiben.

CAD

Computer Aided Design. Computergestützter Entwurfsprozess für viele Industriegüter.

Pipeline

Alle Veränderungen an einem Objekt bilden die Objekt-Pipeline. In ihr summieren sich alle Anpassungen zum gewünschten Ergebnis.

Infos

[1] K-3D-Homepage: http://www.k-3d.org

[2] Yast-Repository (Suse 10.2): http://software.opensuse.org/download/home:/dsbhayangkara/openSUSE_10.2

[3] Mandriva-Paket: http://rpm.nyvalls.se

[4] Online-Dokumentation: http://k-3d.org/wiki/Plugins

[5] Yafray: http://yafray.org

[6] Povray: http://www.povray.org

[7] Agsis: http://www.aqsis.org

LinuxUser 05/2007 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben