RUNNINGSERVER.com
StartseiteDownloadThE lAb!LinksFaqImpressumDatenschutz
GO!
Men├╝:
Info:
Willkommen im Downloadbereich von Hier kannst du von mir geschriebene Programme, entwickelte Hardware und sonstigen Krempel herunterladen. Alles nat├╝rlich ohne Garantieanspr├╝che und Support. Viel Spa├č!
Download: Vector Graphic Interface

Vector Graphic Interface
Vektorgrafik-Displays hatten ihre Bl├╝tezeit in den 70er Jahren und auch da nur in Nieschenanwendungen wie Anzeigen an Fluglotzenbischirmen und Rechnerkonsolen Luxus-Computern wie z.B. der CDC6600. Auch in Arcade-Automaten hatte man vereinzelt Vektorbischirme f├╝r die Spielausgabe. Im Consumer-Bereich waren Vektrobischirme h├Âchst selten. Wahrscheinlich ist der MB-Vectrex, eine Spielekonsole mit Vektorausgabe hier der einzige Vertreter. Heute findet man Vektordisplays nur noch im Lasershowbereich. Die dort verwendeten Projektoren lenken den Laserstrahl mit Spiegeln aus und zeichnen so eine Vektorgrafik auf eine Oberfl├Ąche.



Mich hat das Thema Vektoranzeige und Lasershow schon immer sehr interessiert. Ich besch├Ąftige mich seit einigen Jahren hobbym├Ą├čig mit Lasershowtechnik. Leider bin ich mit der am Markt verf├╝gbaren Software nicht klargekommen, diese ist n├Ąmlich auf den Einsatz im Showbereich optimiert. Wenn man wie ich lieber Anwendungen und Spiele auf einem Laserprojektor umsetzen will sieht man schnell alt aus. Ich habe mir deshalb Gedanken gemacht wie ein Vektorgrafik-Framework aussehen k├Ânnte. Herausgekommen ist VGI, das steht f├╝r ÔÇ×Vektor Graphic InterfaceÔÇť.



VGI ist keine Lasershowsoftware, es ist ein Framework zur Erstellung von Vektorgrafik-Anwendungen bei denen die Ausgabe auf einem Laserprojektor oder auf einem Vektorbildschirm erfolgen kann. Meine Software wendet sich an Programmierer von interaktiven Laseranwendungen und Spielen. F├╝r den normalen Showbetrieb ist die Software weder geeignet noch sinnvoll. Dem Anwender steht eine Programmbibliothek zur Verf├╝gung mit der er von C aus relativ einfach Grafikausgaben programmieren kann. Sogar eine kleine 3D-Engine ist schon eingebaut. Mitgeliefert werden auch Debug-Werkzeuge (vgi2sdl) und ein HPGL-Compiler (hpgl2vgi) mit dem man HPGL-Grafiken in C-Code ├╝bersetzen kann. Zahlreiche Beispiele machen den Einstieg leicht. Man kann direkt loslegen und ausprobieren. Es ist nichtmal zwingend eine Hardware erforderlich denn mitgeliefert wird auch ein Werkzeug (vgi2sdl) das die Ausgabe auf dem PC-Bildschirm erm├Âglicht.



Die Interprozesskommunikation l├Ąuft ├╝ber TCP/IP. Das macht es auch m├Âglich den Rechner an dem die Display-Hardware angeschlossen ist weiter weg z.B. direkt auf der Traverse am Projektor zu platzieren. Die Idee die Ausgabe in einem separaten Prozess laufen zu lassen kam mir als ich ein kleines Problem l├Âsen musste. Meine Lasershow-Hardware (M├╝ller-Elektronik Easylase USB) l├Ąuft n├Ąmlich nur unter Windows. Also habe ich den Hardware-spezifischen Teil auf Windows umgesetzt und lasse den Linux-Prozess ├╝ber Netzwerk mit der Windows-Anwendung via TCP/IP kommunizieren. Die Architektur von VGI und das Kommunikationsprotokoll ist spezifiziert. Es ist ein Klartext-Protokoll das man leicht verstehen und debuggen kann. Ich habe mich bei VGI in allen Punkten bem├╝ht ein ├╝bersichtliches und leicht verst├Ąndliches System zu implementieren.



VGI kann leicht in bestehende Vektorgrafik-Ausgabesysteme eingebunden werden. Wer wei├č wie er in seinem bestehenden System Striche und Punkte ausgeben kann, der kann mit ein par Handgriffen VGI mit seiner Hard bzw. Software verbinden. VGI ist hat eine Schichtenarchitektur. Es gibt 3 Schichten. Layer1 ist die Schicht mit der man bei der Programmierung von Laserapplikationen arbeitet. Sie stellt z.B. Werkzeuge zur Ausgabe von Linien und Text zur Verf├╝gung und k├╝mmert sich darum das die von der Anwendung kommenden Grafikanweisungen korrekt VGI-Code (eine Art Assembler) umgesetzt werden. Der VGI-Code wird dann an Layer 2 ├╝bergeben. Layer 2 ist nun f├╝r die Kommunikation zust├Ąndig. Hier ist das Netzwerkprotokoll umgesetzt und daf├╝r gesorgt das der VGI-Code sicher bei der n├Ąchsten Schicht, Layer 3 ankommt. In Layer 3 ist dann das VGI-Display umgesetzt. Diese Implementierung steuert die Hardware sie beinhaltet Speichermanagement f├╝r die Vektordaten, Parser, Interpolator und den hardwarespezifischen Teil. Im Falle der Easylase ist das die mitgelieferte Windows-Implementierung ÔÇ×vgi2elÔÇť.

Download der aktuellen Version:
Die jeweils aktuellste Version kann hier heruntergeladen werden. Bitte beachten Sie die Lizenzbestimmungen (GNU-GPL V2.0, siehe license.txt)
Download

Unterst├╝tzte Hardware:
http://www.jmlaser.com - Easylase von M├╝ller-Elektronik
http://v.st/ - V.st von Trammell Hudson
http://www.libsdl.org - Ausgabe mit SDL (Simulation)

Einf├╝hrungs-Video:
F├╝r interessierte habe ich ein Einf├╝hrungsvideo gemacht. Erkl├Ąrt wird der Aufbau von VGI mit Code-Beispielen und Demos. Das sollte den Einstieg leichter machen.

Klicken Sie hier um das Video auf Youtube.com anzusehen

Hinweise zur Installation:
Man ben├Âtigt eine aktuelle libCodebananas (Download auf dieser Seite) Weiterhin wird libSDL und libSDL_gfx ben├Âtigt. Unter Windows ben├Âtigt man eine funktionierende Installation der Easylase-Treiber von M├╝ller-Elektronik.

Tip: Schau dir doch auch mal meine Computersammlung an!
(c)2001-2018 Philipp Maier, Hohen Neuendorf