1.5.1. Flächen Geometrien
NURBS (non-uniform rational B-splines) sind mathematische Repräsentationen, die ein Modell einer beliebigen Form akkurat aus einer einfachen 2D Linie, einem Kreis, Boden oder einer Kiste die komplexeste, organische 3D Freiformfläche oder -körper entwickeln können. Auf Grund ihrer Flexibilität und Präzision können NURBS Modelle in jedem beliebigen Prozess, von der Illustration und Animation bis zur Herstellung, genutzt werden.
Abgesehen von ein paar primitiven Flächentypen, wie Kugeln, Kegel, Flächen und Zylinder, unterstützt Rhino drei verschiedene Arten von Freiform Flächentypen, wobei der nützlichste die NURBS Fläche ist. Ähnlich wir bei den Kurven, kann mit der NURBS Fläche jede mögliche Form als Fläche dargestellt werden, was die Rückfallebene in Rhino darstellt. Sie ist außerdem die bei weitem nützlichste Flächendefinition und die, auf die wir uns konzentrieren werden.
- Kugel Primitivkörper [plane, radius]
- Zylinder Primitivkörper [plane, radius, height]
- Fläche Primitivkörper [plane, width, height]
- Kegel Primitivkörper [plane, radius, height]
1.5.1.1. NURBS FLÄCHEN
NURBS Flächen sind sehr ähnlich zu NURBS Kurven. Die selben Algorithmen werden verwendet, um die Form, Normalen, Tangenten, Krümmungen und anderen Eigenschaften zu berechnen, aber es gibt auch klare Unterschiede. Zum Beispiel haben Kurven Tangentenvektoren und Normalenebenen, während Flächen Normalenvektoren und Tangentialebenen besitzen. Das bedeutet, dass Kurven an definierten Positionen keine Orientierung haben, während Flächen keine definierte Richtung besitzen. Im Fall von NURBS Flächen gibt es genau zwei Richtungen, die in der Geometrie einbeschrieben sind, weil NURBS Flächen aus rechtwinkligen Rastern aus {u} und {v} Kurven aufgebaut sind. Auch wenn diese Richtungen oft beliebig sind, werden wir sie sowieso nutzen, weil sie uns das Leben so viel einfacher machen.
Du kannst Dir NURBS Flächen als Raster aus NURBS Kurven in zwei Richtungen vorstellen. Die Form einer NURBS Fläche ist durch eine Anzahl von Kontrollpunkten und den Grad der Fläche in u und v Richtung definiert. NURBS Flächen sind eine effiziente Art um Freiformflächen mit einem hohen Grad an Präzision zu speichern und zu repräsentieren.
Flächen Domänen Eine Flächendomäne ist durch einen Bereich von (u,v) Parametern bestimmt, der in einen 3D Punkt auf der Fläche ausgewertet werden kann. Die Domäne ist normalerweise in jeder Richtung (u oder v) durch zwei reelle Zahlen (u_min und u_max) und (v_min und v_max) beschrieben. Die Domäne einer Fläche zu verändern wird Reparametrisierung genannt.
In Grasshopper ist es oft nützlich eine NURBS Fläche zu reparametrisieren, sodass die u und v Domäne jeweils von 0 bis 1 reicht. Dies ermöglicht es uns die Fläche einfach auszuwerten und mit ihr zu arbeiten.
Auswertung von Parametern eines gleichmäßigen Intervalls im 2D Parameterraster wird nicht notwendigerweise eine gleichmäßige Unterteilung des 3D Raums bedeuten.
Flächenauswertung Die Auswertung einer Fläche an einem Parameter innerhalb der Flächendomäne resultiert in einem Punkt auf der Fläche. Merke Dir, dass der Mittelpunkt einer Domäne (mid-u, mid-v) nicht notwendigerweise der Mittelpunkt der 3D Fläche ist. Wenn Du nun u- und v-Werte außerhalb der Domäne der Fläche auswerten willst, wirst Du kein nützliches Ergebnis erhalten.
Normalenvektoren und Tangentialebenen Die Tangentialebene einer Fläche an einem bestimmten Punkt ist die Ebene, welche die Fläche an einem Punkt berührt. Die z-Richtung der Tangentialfläche repräsentiert die Normalentichtung der Fläche an diesem Punkt.
Grasshopper behandelt NURBS Flächen ähnlich wie Rhino, weil es diese auf demselben Kern von Operationen aufbaut, die notwendig sind, um die Fläche zu erzeugen. Da Grasshopper jedoch die Fläche oberhalb des Rhinoansichtsfenster darstellt (aus diesem Grund kann man die Geometrien, welche in Grasshopper erzeugt werden, nicht auswählen, weil sie in die Szene gebacken werden) sind manche der Mesheinstellungen etwas niedriger, um die Geschwindigkeit von Grasshopper relativ hoch zu halten. Du hast vielleicht festgestellt, dass manche Polygonnetze (Meshes) facettiert sind, aber das ist zu erwarten und ist ein Ergebnis der Grasshopper Darstellungsoptionen. Jede gebackene Geometrie wird die höheren Mesheinstellungen von Rhino verwenden.
1.5.1.2. FLÄCHEN PROJIZIEREN
Im vorherigen Abschnitt, haben wir erklärt, dass NURBS Flächen ihren eigenen Koordinatenraum besitzen und dass dieser durch u und v Domänen beschrieben wird. Dies bedeutet, dass zweidimensionale Geometrien, welche durch x und y Koordinaten beschrieben werden auf den uv Raum der Fläche abgebildet werden können. Die Geometrie wird sich verändern und verzerren, um sich an die Krümmung der Fläche anzupassen. Dies ist unterschiedlich zu einer einfachen Projektion auf eine Fläche, bei der Vektoren von der 2D Geometrie in eine bestimmte Richtung gezeichet werden, bis sie mit einer Fläche verschneiden.
Du kannst Dir eine Projektion als einen Schattenwurf auf eine Fläche vorstellen und eine Abbildung als eine Geometrie, die über die Fläche gezogen wird.
- Abgebildete Geometrie definiert durch uv Koordination
- Projizierte Geometrie auf einer Fläche
So wie 2D Geometrie auf den uv Raum einer Fläche abgebildet werden kann, ist es möglich eine Geometie, die in einer Kiste enthalten ist, auf eine verzerrte Kiste auf einem Flächenabschnitt abzubilden. Diese Operation wird "Box Morph" genannt und ist nützlich um eine gekrümmte Fläche mit dreidimensionalen geometrischen Komponenten zu bevölkern.
Um eine Reihe verzerrter Kisten auf einer Fläche anzuordnen, muss die Flächendomäne unterteilt werden, um ein Raster von Flächenabschnitten zu erzeugen. Die verzerrten Kisten werden erzeugt, indem Normalenvektoren an den Ecken eines jeden Flächenabschnitts bis zur gewünschten Höhe angetragen werden und eine Kiste erzeugen, deren Eckpunkte durch die Endpunkte dieser Vektoren bestimmt werden.
1.5.1.3. MORPH DEFINITION
Beispieldateien zu diesem Abschnitt: http://grasshopperprimer.com/appendix/A-2/1_gh-files.html
In diesem Beispiel werden wir die "Box Morph" Komponente einsetzen um eine NURBS Fläche mit geometrischen Komponenten zu bevölkern.
- NURBS Fläche bevölkert mit Komponenten.
- Ursprüngliche Komponente in ihrer Referenzkiste.
- Fläche unterteilt in Flächenabschnitte.
- Reihe verzerrter Kisten auf einer Fläche.
Du musst nun ein Raster aus verzerrten Kisten sehen, die Deine Referenzfläche bevölkern. Verändere die Anzahl U und V Schieberegler um die Zahl der Kisten zu verändern und bewege den Höhenschieberegler um ihre Höhe anzupassen.
Du solltest nun sehen, wie die Fläche mit Deiner Geometrie bevölkert wurde.