Hochauflösender Export aus vvvv

Bitte beachten Sie, dass die HTML Version vor allem dazu dient, die indizierbarkeit des Inhals durch Suchmaschinen zu erleichtern. Eine wesentlich lesbarere Version enthält dieses pdf.

 

3| Zeichenbare Objekte

Bevor die Modalitäten eines auflösungsunabhängigen Export aus vvvv besprochen werden können, muss erst geklärt werden, welchen Einschränkungen die unterschiedlichen Objekttypen, die mit vvvv generiert werden können, unterliegen.
Für den auflösungsunabhängigen Export muss zwischen Vektordaten und Bitmapdaten unterschieden werden: während Vektordaten ohne Qualitätsverlust unbegrenzt vergrößert werden können, ist jede Bitmap Datei, abhängig von ihrer Auflösung, nur bis zu einem gewissen Grad vergrößerbar. Detaillierte Information zu Vektor- und Bitmapdaten finden sich in „Druck & Medien Technik“ im Kapitel „Digitalisierung: Vektorgrafik oder Pixelbild“ (Teschner 2003, 8.5f) und im Kapitel „Vektorgrafik: Punkte zum Anfassen“ (Teschner 2003, 8.8ff).

 

3|1| Vektordaten

Vektordaten sind, neben Raster- bzw. Bitmapdaten die zweite gebräuchliche Methode um ein Bild zu beschreiben. Dies geschieht durch mathematische Funktionen in einem Koordinatensystem. Während eine Rastergrafik jeden einzelnen Bildpunkt speichert, besteht eine Vektorgrafik aus Linien, Kurven oder Flächen. Um z.B. einen Kreis zu definieren, benötigt eine Vektorgrafik nur zwei Werte: den Kreismittelpunkt und den Kreisdurchmesser. Dadurch können Vektorgrafiken im Gegensatz zu Rastergrafiken stufenlos skaliert werden.
vvvv bietet ein breites Spektrum an Funktionen zur Erzeugung von Vektorobjekten an, welche sich in die Kategorien „Punkt“, „Linie“, „Fläche“ und „Körper“ einteilen lassen (vgl. Adobe 2004, 547f).
Wie in Kapitel 4 gezeigt werden wird, ist der hochauflösende Export aus vvvv nur über eine sequenzielle Vergrößerung gitterförmig angeordneter Bildausschnitte zu erreichen. Die einzelnen Vektorobjekte
verhalten sich bei Vergrößerung unterschiedlich, was zu Einschränkungen der in dieser Arbeit vorgestellten Methode zum auflösungsunabhängigen Export aus vvvv führt. Deshalb ist es unabdingbar, über die Dimensionalität zu sprechen, insbesondere in Bezug auf die Darstellung und der Konstruktion eines Elements. Hier muss angemerkt werden, dass sich alle hier gezeigten Objekte in einem 3-dimensionalen Koordinatensystem (Höhe, Breite, Tiefe) befinden. Intern weisst vvvv jedem Objekt 3 Koordinaten zu, wobei Bildschirme lediglich zwei Dimensionen (Höhe und Breite) darstellen können. Der Knoten, der das Bildfenster erzeugt (Renderer) rechnet die dreidimensionalen Daten so um, dass sie auf der zweidimensionalen Bildfläche dargestellt werden können.

 

3|1|1| Punkte

Ein Punkt ist ein 0-dimensionales mathematisches Objekt, das in einem n-dimensionalen Raum mit n Koordinaten definiert werden kann:
“A point 0-dimensional mathematical object, which can be specified in n-dimensional space using n coordinates.” (Wolfram Research 2005a)
Dies ist eine sehr mathematische Definition und im Allgemeinen leichter verständlich scheint Euklids Definition zu sein: „Was keine Teile hat, ist ein Punkt.“ (Euklid 2003). Sobald jedoch ein definiertes Ausgabemedium vorhanden ist (Papier, Bildschirm), ist ein Punkt einfach nur das kleinste darstellbare Objekt dieses Ausgabemediums. Also ein Punkt auf dem Papier oder ein Pixel auf dem Bildschirm.
In vvvv gibt es nur einen Knoten, Point (GDI) der die Darstellung von beliebig vielen Punkten explizit ermöglicht. Implizit ermöglicht aber jeder Knoten, der ein grafisches Objekt zeichnet, auch eine Darstellung als Punktewolke der Eckpunkte. Ein Knoten. der einen gefüllten Würfel zeichnet, kann also auf eine Darstellung umgeschaltet werden, die nur die 6 Eckpunkte des Würfels zeigt.
Aus der Eigenschaft eines Punktes immer das kleinste darstellbare Objekt eines Ausgabemediums zu sein ergibt sich eine wichtige Einschränkung: Ist ein Punkt auf einem zu exportierenden Bild einen Pixel groß, wird sich dessen Größe beim Vergrößern eines Bildausschnittes nicht verändern und auch bei sehr starker Vergrößerung stets einen Pixel bzw. Punkt groß sein.

Abb. 6

Als Beispiel soll Abbildung 6 dienen: Die 6 Eckpunkte eines Würfels. Wie aus den Bildern ersichtlich ist, verändert sich die Größe des Punktes auch bei starker Vergrößerung des Bildes nicht. Nur der Abstand zwischen den Punkten wird vergrößert. Dieses Problem der unproportionalen Vergrößerung kann nur vermieden werden, indem auf Punkte verzichtet wird und stattdessen andere Objekte (z.B. ein sehr klein skaliertes Quad (DX9)) verwendet werden.

 

3|1|2| Linien

Linien dienen dazu, mindestens zwei, aber auch mehr Punkte im Raum miteinander zu verbinden. Wie sich schon anhand dieser Definition erkennen lässt, greift eine Linie zwingend auf Punkte zurück, da diese zur Beschreibung des Linienverlaufs unabdinglich sind. Eine gerade Linie, in der euklidischen Geometrie entspräche dies einer Geraden mit unendlicher Länge oder einer Strecke mit endlicher Länge (vgl. Wolfram Research 2005b), wird als eindimensional bezeichnet, da sie sich nur in eine Dimension ausdehnen kann, und dabei keine Dicke besitzt.
vvvv kann jedes generierte Vektorobjekt auf einen Ansichtsmodus umschalten, in dem nur die Kanten zwischen Eckpunkten gezeichnet werden. So kann ein gefülltes Dreieck so gezeichnet werden, dass nur die 3 Kanten sichtabr sind. Allerdings ist die Dicke der Linien nicht beeinflussbar und hat deshalb immer nur eine Dicke von einem Pixel. Daraus ergeben sich Probleme bei der Vergrößerung von Bildausschnitten.

Abb. 7


Wie aus Abbildung 7 ersichtlich beträgt die Linienstärke der Würfelkanten immer genau einen Pixel so dass das Verhältnis zwischen Linie und Weißflächen bei vergrößerten Bildausschnitten anders ist als beim unvergrößerten Ausgangsbild. Auch diese Einschränkung bei der proportionalen Vergrößerbarkeit von Linien lässt sich nur durch einen Verzicht auf diesen Darstellungsmodus und das Ersetzen durch andere Objekte (z.B. ein langgezogenes Quad (DX9)) umgehen.

 

3|1|3| Flächen

Flächen, oder auch Polygone, sind eine Sammlung von mindestens 3 Punkten, zwischen denen eine gefüllte Fläche aufgespannt wird. Das einfachste Polygon ist das Dreieck, welches aus genau 3 Punkten besteht. Das Hinzufügen eines weiteren Punktes ergibt ein Viereck, mit weiteren Punkten entsprechende Flächen mit mehr Eckpunkten.
Ein Gedanke, der zwar offensichtlich erscheint, aber während der Arbeit mit solchen Flächen immer wieder Kopfzerbrechen bereitet, ist die Tatsache, dass die Reihenfolge, in welcher die Punkte verbunden werden, von entscheidender Bedeutung für das Aussehen der Fläche ist.

Abb.8


vvvv bietet diverse Knoten an, die sich zum Zeichnen von Flächen eignen, wobei eine Fläche immer eine gewisse Ausdehnung, aber keine Dicke besitzt, d.h. Flächen haben kein Volumen. Somit ist die Fläche ein zweidimensionales Objekt im 3-dimensionalen Raum. Mit Flächen gibt es keinerlei Probleme beim proportionalen Vergrößern von Bildausschnitten, wie Abbildung 8 zeigt. Natürlich lassen sich bei Vergrößerungen mehr Details erkennen, als im unvergrößerten Bild. So ist z.B. dieses v nicht ganz sauber konstruiert und zwischen den Vektorlinien gibt es kleine Weißräume.

 

3|1|4| Körper

Körper setzten sich aus unterschiedlichen Flächen (meist Drei- oder Vierecken) zusammen, die so angeordnet werden, dass ein dreidimensionales Modell eines Objektes entsteht. In vvvv können Körper entweder generiert oder importiert werden. So kann mit einem beliebigen 3D Modelling Programm ein Modell erstellt werden, das dann in vvvv darstellbar und manipulierbar ist.
Über den Knoten VertexBuffer (EX9.Geometry Join) in Verbindung mit Mesh (EX9.Geometry Join) stellt vvvv Funktionen bereit, die die Erstellung von Körpern aus Punktewolken ermöglichen. So können komplexe 3D-Objekte direkt generiert und punktgenau manipuliert werden. Zudem existiert ein Knoten, der 3-dimensionale Textobjekte erzeugen kann. Dies funktioniert mit allen installierten Fonts und Symbol-Fonts. Jeder Körper hat eine Oberfläche, die ein gewisses Volumen umschließt und deshalb lassen sich alle gefüllten Körper problemlos vergrößern, wie Abbildung 9 zeigt.

Abb. 9

 

3|2| Bitmap Daten

vvvv kann Bitmapdaten nur als Oberflächen (Texturen) auf Vektorobjekten darstellen.
Das 3D Objekt dient dabei als Skelett über das ein Bild gelegt wird. Da Bitmap Dateien immer in einer gewissen Grundauflösung vorliegen, können diese nicht ohne Qualitätsverlust skaliert werden. Beim Verkleinern gehen Informationen verloren und beim Vergrößern gibt es keine Möglichkeit, mehr Informationen (also zusätzliche Details) auf der Bildfläche darzustellen als jene im Ursprungsbild enthaltenen. (vgl. Adobe 2004, 547)
Sollten also in Bildern, die mit der in dieser Arbeit gezeigten Methode hochauflösend exportiert werden sollen, Texturen verwendet werden, so gilt es einen wichtigen Umstand zu beachten: die Textur verliert immer dann an Qualität, wenn sie über ihre ursprüngliche Größe hinaus vergrößert wird.
Dazu ein Beispiel:
Eine Textur mit einer Größe von 1024 x 1024 Pixeln soll auf einem Quadrat dargestellt werden. Dieses Quadrat ist Teil eines Bildes, das in einer Größe von 5120 x 5120 Pixeln exportiert werden soll. Sobald das Quadrat über die Größe der darauf liegenden Textur vergrößert wird, kommt es zu einem Qualitätsverlust. Deswegen sollte dieses nicht mehr als 1/5tel des gesamten Bildes einnehmen.
Wird diesem Aspekt der eingeschränkten Vergrößerbarkeit von Bitmapdaten Rechnung getragen, gibt es keine Probleme bei der Verwendung von Texturen für den hochauflösenden Export aus vvvv.

 

<< zurück || weiter >>

0| Einleitung
1| Auflösung von Bilddateien
2| vvvv als Grafikwerkzeug
3| Zeichenbare Objekte in vvvv
4| Bildexport mit vvvv
5| Export von Bildausschnitten mit vvvv
6| Das Zusammensetzen der Teile
7| Conclusio

A| Anhänge

Zurück zur Diplom-Hauptseite

 
 

(c) by Thomas Hitthaler, ampop.net