Erweiterung einer visuellen Shading Language um OGSL Unterstützung
Studienarbeit von Sascha Ertelt
Motivation
Dank der Shader Technologie moderner Grafikkarten ist es Heutzutage möglich realistische Grafik in nie zuvor da gewesener Qualität zu erzeugen. Die Shader Technologie basiert auf frei programmierbare Schnittstellen innerhalb der ansonsten statischen Grafikpipeline. Diese Schnittstellen sind programmierbare Prozessoren, die als Vertex und als Fragment Prozessoren bezeichnet werden. Diese Prozessoren lassen sich durch spezielle Hochsprachen, den so genannten High-Level Shading Language programmieren. Die mit den Sprachen entwickelten Programme, werden als Shader bezeichnet. Ein Wunsch ist es, wie bei allgemeinen Programmiersprachen wie Java oder C++ üblich, diese Shader mithilfe einer Entwicklungsumgebung zu programmieren. Entwicklungsumgebungen machen dem Programmierer die Programmierarbeit um einiges leichter, da diese ihm nützliche Werkzeuge zur Verfügung stellen mit denen Programme Effizient programmiert werden können. Im Bereich der Shader Technologie sind zurzeit erst wenige solcher Entwicklungsumgebungen entwickelt worden.
Ziel der Studienarbeit
Das Ziel dieser Studienarbeit ist die Erweiterung einer visuellen Shading Language die auf Java basiert und die in einer kompletten Entwicklungsumgebung eingebettet ist. Diese visuelle Shading Language ist in der Lage bestehende High-Level Shading Languages zu visualisieren. Somit ist auch die Entwicklung von Shadern für Personen, die nur wenig Programmier Erfahrung besitzen, möglich. Die Erweiterung umfasst dabei die Integration der OpenGL Shading Language als zusätzliche visualisierte High-Level Shading Language. Durch die Integration ist es möglich mithilfe der Entwicklungsumgebung Shader für die OpenGL Shading Language zu entwickeln.
Implementierung
Zunächst wurde die GL4Java Anbindung als OpenGL API durch Jogl ersetzt. Danach wurde die OpenGL Shading Language auf XML Basis Integriert. Dabei mussten die einzelnen Sprachbestandteile auf XML Elemente abgebildet werden. Außerdem musste die Speicherung von Shadern sowohl als XML Dokument als auch als Shader Datei ermöglicht werden. Durch die gegebene Preview Möglichkeit, musste die Anbindung der OpenGL Shading Language an das Preview Fenster durch das Treibermodell realisiert werden. Die Preview Möglichkeit wurde durch eine neue OpenGL Szene ergänzt. Durch diese neue Szene können beliebige Shader innerhalb der Szene gleichzeitig dargestellt werden. Abschließend wurden einige Beispielshader für die OpenGL Shading Language mithilfe der Entwicklungsumgebung erstellt.
Links
Für weitere Informationen bitte E-Mail an saschert@zitmail.upb.de.