Titelaufnahme

Titel
Shading framework for modern rendering engines / von Onur Dogangönül
VerfasserDogangönül, Onur
Begutachter / BegutachterinWimmer, Michael
Erschienen2013
UmfangXI, 135 S. : Ill., graph. Darst.
HochschulschriftWien, Techn. Univ., Dipl.-Arb., 2013
Anmerkung
Zsfassung in dt. Sprache
SpracheEnglisch
DokumenttypDiplomarbeit
URNurn:nbn:at:at-ubtuw:1-75867 Persistent Identifier (URN)
Zugriffsbeschränkung
 Das Werk ist frei verfügbar
Dateien
Shading framework for modern rendering engines [8.68 mb]
Links
Nachweis
Klassifikation
Zusammenfassung (Deutsch)

Die Entwicklung von modernen Echtzeitgrafikanwendungen stellt für Entwickler eine große Herausforderung dar. Grafikalgorithmen werden üblicherweise von spezialisierter Hardware, die für parallele Berechnung einer großen Anzahl an Operationen optimiert ist, ausgeführt. Die Entwickler definieren das Verhalten der verschiedenen Abschnitte der Grafikpipeline über Shaderprogramme, die typischerweise in prozeduralen Sprachen wie HLSL oder GLSL für jeden Abschnitt separat geschrieben werden. Im Gegensatz dazu wird der Anwendungscode selbst meist in C/C++ geschrieben. Die Konfiguration der Hardware, der Shader- und der Anwendungscode müssen miteinander abgestimmt sein um bestimmte visuelle Effekte erzielen zu können. Die meisten komplexen Grafikalgorithmen erfordern zahlreiche Shaderdateien, die zum Teil Code doppelt enthalten oder nur dafür dienen, Daten von einem Abschnitt der Pipeline in den nächsten weiterzuleiten. Dazu kommt, dass die Wiederverwendbarkeit und Modularität des Codes durch das Design der Shadersprachen eingeschränkt ist. Diese Arbeit setzt sich mit aktuellen Themen der Entwicklung von Echtzeitgrafikanwendungen auseinander. Das Spark Framework wird dabei als Referenzansatz vorgestellt, untersucht und durch unterstützende Dokumentation und Funktionalität erweitert. Die Autoren des Spark Frameworks stellen eine neuartige, aspektorientierte Shadingsprache vor, die durch einen Compiler in HLSL Prozeduren basierend auf einem Direct3D Backend umgeschrieben wird. Im Rahmen dieser Arbeit wird ein OpenGL Backend präsentiert, durch neue Beispiele erläutert und das resultierende erweiterte Framework evaluiert und untersucht.

Zusammenfassung (Englisch)

Nowadays real-time graphics programmers find themselves in a challenging development environment. Graphics algorithms are usually accelerated by specialized hardware, which is optimized for streaming operations and parallel computation. Programmers write shaders to specify the behavior of certain stages of the graphics pipeline. Shaders are mostly written in procedural per-stage languages like HLSL or GLSL, whereas application code is mostly written in C/C++. Hardware state setup, shading- and application code has to be aligned to achieve a certain visual effect. Advanced graphics algorithms often comprise numerous shader files, including undesirable duplicate- and pass-through shader code. Furthermore, code reusability, composability and modularity is restricted due to the design of current shading languages. In this thesis current issues in real-time graphics development are discussed. Particularly, the Spark framework, which is considered as a reference approach is examined and extended by supplementary documentation and functionality. Within the framework the authors present a novel aspect-oriented per-pipeline shading language, which is eventually translated to HLSL procedures by a compiler on top of a Direct3D 11 back-end. Within this thesis an OpenGL 4.2 back-end is presented, new examples are shown and the extended framework is re-evaluated and discussed.