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.

 

4| Bildexport mit vvvv

 

4|1| Als Ganzes

Es gibt nur einen Knoten in vvvv der ein Bild erzeugen kann und das ist der „Renderer“. Diesen gibt es in 5 Varianten:

1. TTY: Ein Terminalfenster, das nur Text darstellen kann und über das Fehlermeldungen und andere Informationen angezeigt werden können.
2. HTML: Ein HTML Browser mit dem sich Internetseiten anzeigen lassen.
3. GDI: Zeichnet 2d Strichgrafiken über das „Graphic Device Interface“ von Windows
4. Flash: Kann Flash Filme (.swf) darstellen
5. DX9: Der Renderer, der auf das DirectX Interface von Windows zugreift und
hardwarebeschleunigt 3D Objekte rendern kann. Auf diesen beziehen sich alle folgenden Ausführungen.

Der Renderer (DX9) kann die in einem Patch definierten Objekte darstellen und, in Kombination mit zwei anderen Knoten auf einen Datenträger speichern. Der Ausgangspin DX9 Out des Renderers muss mit dem Source Pin eines DX9.Texture (EX9.Texture) Knotens verbunden werden. Anschließend muss dessen Texture Out Pin mit dem Texture Pin des Writer (EX9.Texture) Knotens verbunden werden. Hier muss das Dateiformat und ein Dateiname definiert werden. Nach klicken auf den Save Pin, wird das Bild gespeichert. Diesen Aufbau zeigt Abbildung 10.

Abb. 10


Um die Pixelgröße des zu speichernden Bildes festzulegen, dienen die Backbuffer Width und Backbuffer Height Pins am Renderer (DX9) Knoten. vvvv akzeptiert an diesen beiden Pins Werte von 1 bis 10000 Pixeln aber die maximale Ausgabegröße wird zusätzlich durch die verwendete Hardware, im Speziellen der Grafikkarte, eingeschränkt, wie ein Entwickler von vvvv in einem privaten E-Mail (siehe Anhang) erklärt:

„2048x2048 Pixel als Beschränkung für die maximale Größe einer Textur sind eine reine Hardwarebeschränkung und treffen auch nur für ATI- Karten zu. Die meisten nvidia Karten scheinen eine maximale Auflösung von 4096x4096 zu haben.
Vielleicht gibt es noch andere Grafikkarten Hersteller, die andere Beschränkungen in ihre Produkte einbauen. Schwer herauszufinden da so etwas kaum bei den technischen Spezifikationen im Internet dabei steht. Es handelt sich dabei um den Wert den die Grafikkarten und deren Treiber für die „caps“ (= capabilities) „MaxTextureWidth“ und „MaxTextureHeight“ zurückliefern.In der neuen vvvv Version (Beta 9) wird dieser Wert der Grafikkarte am zweiten Pin des „Device (Auto)“ Knotens angezeigt.“
(Joreg)

Diese Beschränkungen entstehen durch die Tatsache, dass Hardware immer mit einer endlichen Anzahl von Transistoren umgehen muss. Somit gibt es ganz klare Begrenzungen in der Anzahl der Dinge, die softwaretechnisch unterscheiden werden können und somit eine Obergrenze für die Anzahl von Pixeln in einer Textur. (vgl. Thompson 2003, 137)
Sebastian Oschatz, dessen E-Mail sich ebenfalls im Anhang befindet, erklärt diese Limitierungen so:
„4096x4096 scheint das zu sein, was heutige Hersteller maximal zulassen. Immerhin 16MB Bilddaten, die in jedem Frame bewegt werden müssen, wenn man mit der Textur arbeitet. 8192x8192 sind dann schon 64MB -- kein Spielehersteller glaubt, dass sich mit den damit erzielbaren Frameraten ein Blumentopf gewinnen ließe. Also spart man die Leitungen, Zählwerke und Adressierungslogiken ein. Alles wertvolle Transistoren.“

An dieser Stelle ist anzumerken, dass sämtliche genannten Pixelwerte Potenzen von 2 sind. 2048 = 211, 4096 = 212
Zweierpotenzen sind in der Hardwaretechnik wichtig, weil sie die Zahlen beschreiben, die mit einer minimalen Anzahl von Adressleitungen (Bussen) eindeutig adressiert werden können (vgl. Thompson 2003, 138). Also eine technische Optimierung.
Mit 9 Leitungen können 512 Pixel adressiert werden (29 = 512). Sollen 513 Pixel adressiert werden, bräuchte es schon 10 Leitungen.
Mit gleichem Aufwand könnten jedoch bis zu 1024 Pixel adressiert werden. Relativ gesehen, sind also 513 teurer als 1024.
Da jede Grafikkarte eine endliche Anzahl an Adressleitungen besitzt, und viele davon für andere Aufgaben (z.B. Geometrie- und Befehlsspeicher) verwendet werden (vgl. Fernando 2003, 97) stellt die Grafikkarte nur eine begrenzte Anzahl von Adressleitungen pro Textur zur Verfügung. Wie bereits erwähnt ist diese Obergrenze für die Bildgröße nicht bei allen Grafikkarten gleich und gewisse Karten können auch sehr große Texturen (4069 Pixeln entsprechen 34,5 cm bei 300dpi) rendern. Und in Zukunft wird es ohne Zweifel möglich sein, noch größere Texturen zu rendern. Trotzdem wird es immer eine Obergrenze geben und somit ist die Auflösungsunabhängigkeit keinesfalls gegeben. Es muss also ein Weg gefunden werden, um die Limitierungen der Hardware zu umgehen.

 

4|2| In Teilen

Wie in Kapitel 3 gezeigt, können die meisten von vvvv erzeugten Objekte beliebig vergrößert werden ohne an Qualität zu verlieren. Allerdings verhindern die in Kapitel 4|1 erörterten Hardwareeinschränkungen den Export von beliebig großen Bildern.
Diese Einschränkungen können nur überwunden werden, indem Bildteile vergrößert gerendert werden. Durch Verschieben des Bildausschnittes kann ein Bild in mehreren Einzelteilen gespeichert werden, die zusammengesetzt dem zu exportierenden Einzelbild entsprechen.
So lässt sich die maximale Größe der exportierbaren Bilder vervielfachen. Je höher die Vergrößerung der einzelnen Bildausschnitte, desto mehr Einzelteile hat das exportierte Bild. Somit kann jedes aus Vektorobjekten zusammengesetzte Motiv in beliebiger Größe exportiert werden. Der beschränkende Faktor ist nur noch die Größe der Festplatten, wobei ein 10 x 10 Meter großes Farbbild mit 300 dpi „nur“ 39GB groß wäre. Somit ist das Limit eher theoretisch.

Abb. 11

Eine mögliche Einteilung zeigt Abbildung 11. Dabei wird das Bild in 3 x 3 quadratische Teile zerlegt. Ob und wie sich diese Bildaufteilung mit vvvv realisieren lässt, ist das Thema des nächsten Kapitels.

 

<< 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