RUNNINGSERVER.com
Stoppt die Vorratsdatenspeicherung! Jetzt klicken & handeln!Willst du auch bei der Aktion teilnehmen? Hier findest du alle relevanten Infos und Materialien:
StartseiteDownloadThE lAb!LinksImpressumFaq
GO!
Menü:

Software:
Download - BotBatch
Download - libcodebananas
Download - rfidLab
Download - Arfcncalc
Download - dsp_buttler
Download - burli
Download - obra.profiler
Download - Mazewar
Download - Visual Data Inspector
Download - Fluke2Gnuplot
Download - VGI

Hardware:
The Lab - ChicardLab
The Lab - DeveloperCard
The Lab - geekKarte
Download - Xcos
Download - Omi´s Teletype
The Lab - Dornroeßchenschaltung
The Lab - Dornroeßchenschaltung
Download - MagnetcardLab
Download - miniMagstripeReader
Download - DCF39 Receiver
Download - DSWL
Download - pdp11tool
Download - plaintextPinPad

Sonstiges:
Download - Peter Kratz Comics

Bitte wählen Sie das Projekt aus, das Sie herunterladen möchten.
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.

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.

(c)2001-2015 Philipp Maier, Hohen Neuendorf