Buchempfehlung
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Umfassend, aber leicht verständlich führt dieses Buch in die Programmierung von ATMEL AVR Mikrocontrollern ein. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

OpenGl_Player

Downloads » Anwendungssoftware

Download

Screenshot

Screenshot
Vergrößern
Bild vergrößern

Bewertung

Bisher keine Bewertung
(Zum Abstimmen auf die Sterne klicken.)

OpenGl_Player ist eine GTK-Applikation für win32 und LINUX. Sie arbeitet ähnlich wie bekannte 'Media-player', die zum Abspielen von Musik- oder Filmdateien verwendet werden. Jedoch sind die Medien, welche OpenGl_Player abspielt, mehr oder weniger kleine Programme mit OpenGl-Sequenzen (Module oder Plugins).

OpenGl-Player lädt beim Programmstart alle Module aus einem bestimmten Ordner und listet diese auf. Der Anwender wählt ein Modul aus dieser Liste, welches dann wie ein Film betrachtet werden kann, also gestartet, angehalten, wieder gestartet oder zum Anfang zurück gespult werden kann. Durch einfaches Wechseln der Listenauswahl können verschiedene Module nacheinander betrachtet und verglichen werden.

Ein Modul ist ein FreeBasic Programm, welches als dynamische Bibliothek mit dem Kommando fbc -dylib ... kompiliert wurde. Wenn während der Laufzeit von OpenGl_Player ein Modul neu kompiliert wird, dann kann dieses das zuvor geladene Modul ersetzen (refresh). Ebenso können nachträglich erstellte Module neu geladen und in die Liste aufgenommen werden (rescan).

OpenGl_Player eignet sich zur Erprobung von OpenGl-Sequenzen, z. B. zur Optimierung von Beleuchtungs- oder Materialparametern. Die betreffende Code-Sequenz wird als Modul formuliert. Das Kompilieren des kleinen Moduls erfolgt zügig und das Ergebnis kann sofort betrachtet werden. Während OpenGl_Player alle notwendigen Funktionen zum Betrachten beisteuert, kann der Quelltext im Modul auf das Wesentliche beschränkt werden.

Ein Modul kann natürlich auch Daten von der Festplatte laden, z. B. um Ergebnisse einer Simulationsrechnung abzuspielen. Oder die Simulation erfolgt online, während der Wiedergabe (, vgl. Beispiele ODE_...). Ebenfalls ist es in einem Modul möglich, ein GTK-Fenster zur Eingabe von Parametern durch den Benutzer oder auch zur Ausgabe von Parametern (z. B. als Liniengrafik) vorzusehen.

Das Archiv enthält den Quelltext, der noch kompiliert werden muss:

DateiBeschreibung
src/OpenGl_Player.basder zu kompilierende Quelltext
src/OpenGl_Player.biHeader-Datei für alle Module
src/OpenGl_Player.uiGUI-XML-Datei
src/tobac/*.basQuelltext für Signal-Handlers
src/modules/empty.basein leerer Quelltextrahmen für neue Module
src/modules/Teapot.basModul-Quelltext: tanzende Teekanne
src/modules/ODE_Boxes.basModul-Quelltext: fallender Boxenstapel
src/modules/ODE_Bouncing.basModul-Quelltext: Bälle fallen auf Box
src/modules/ODE_Dominoes.basModul-Quelltext: fallende Dominosteine
src/modules/*_tobac.basQuelltext zur Anbindung von GUI-XML-Dateien
src/modules/*.uiGUI-XML-Dateien

Technisches:

OpenGl_Player versucht eine Echtzeit-Darstellung zu realisieren. Dazu wird intern eine g_timeout-Funktion für die Simulation verwendet und anschließend wird der OpenGL Zeichenbereich aktualisiert. Dies geschieht standardmäßig mit einer Frame-Rate von 50 Bilder pro Sekunde. Wenn die Darstellung des letzten Frame nach der Berechnung noch nicht abgeschlossen ist, dann wird die Darstellung des nächsten Frame (und ggf. auch von weiteren Frames) übersprungen. Wenn jedoch auch die Berechnung länger dauert als die aktuelle Frame-Rate, dann erfolgt die Simulation nicht mehr in Echtzeit sondern verlangsamt.

Die Frame-Rate kann von einem Modul angepasst werden (und sollte beim Ausstieg aus dem Modul restauriert werden).

Folgende Bibliotheken sind zu installieren: GTK >= 2.16 (wegen GtkBuilder), GtkGlExt-1.2 und für die Module Ode-0.11.

Modul ODE_Bouncing.bas
Vergrößern
Modul ODE_Bouncing.bas
Modul ODE_Boxes.bas
Vergrößern
Modul ODE_Boxes.bas
Modul ODE_Dominoes.bas
Vergrößern
Modul ODE_Dominoes.bas

English

See Externer Link!English forum.