Fraunhofer-Gesellschaft

Publica

Hier finden Sie wissenschaftliche Publikationen aus den Fraunhofer-Instituten.

Rendering with poxels. A software architecture for programmable shading systems

 
: Behrens, U.

:
urn:nbn:de:0011-b-730769 (1.7 MByte PDF)
MD5 Fingerprint: 102e8b4e09e62a58643101683de59694
Erstellt am: 31.07.2002


Sankt Augustin: GMD Forschungszentrum Informationstechnik, 1999, 128 S.
Zugl.: Bremen, Univ., Diss., 1999
GMD research series, 1999,11
ISBN: 3-88457-360-8
Englisch
Dissertation, Elektronische Publikation
Fraunhofer FIT ()
poxel; rendering; programmable shading; RENDERMAN; software architecture; optimization

Abstract
Die vorliegende Arbeit beschreibt ein flexibles und allgemeines Konzept für den Entwurf programmierbarer Grafiksysteme ("programmable shading systems"). Eine entsprechend entwickelte Softwarearchitektur identifiziert und überwindet dabei einige der von alternativen Ansätzen her bekannten Beschränkungen. Obwohl das Hauptaugenmerk der Architektur auf Flexibilität, Allgemeinheit und weitestgehender Offenheit liegt, werden Ziele wie Sicherheit und Effizienz nicht vernachlässigt. Wenngleich diese Ziele nicht neu, und allgemein wünschenswert sind, ist ein neuartiger Ansatz entwickelt und erfolgreich implementiert worden, der sie erfüllt, und dabei zugleich überraschend einfach zu verstehen und zu benutzen ist. Das System orientiert sich entlang zweier Konzepte, die in der Arbeit entwickelt und erläutert werden: Dem Poxel, der ein Modell für die Kapselung des inneren Zustandes des Bilderzeugungsprozesses ("rendering process") darstellt, und dem Shader, der dazu dient, eben diesen Zustand zu manipulieren. Ausgehend von diesen beiden Konzepten wird ein leistungsfähiger Mechanismus entwickelt, der dazu dient, komplexe Bilderzeugungsalgorithmen ("rendering algorithms") zu konstruieren. Dadurch, daß sowohl Operationen auf Daten, als auch der Datenfluß an sich durch das selbe Konzept - den Shader - ausgedrückt werden, können komplexe Algorithmen aus vordefinierten, sowie speziell konstruierten Bausteinen zusammengesetzt werden, was zum einen der Wiederverwendung, zum anderen aber auch der Prototyperstellung entgegen kommt. Durch Verwendung eines objektorienterten Ansatzes im Bereich der Modellierung und der Bilderzeugung kann das System eine Vielzahl von Aufgaben bew¨ altigen, bis hin zur gleichzeitigen Unterstützung verschiedener Bilderzeugungsverfahren wie etwa Strahlverfolgung und zeilenorientierten Methoden innerhalb des selben Bildes. Die speziellen Eigenschaften der Shader erlauben eine vielseitige Anwendbarkeit, welche in der Arbeit detailliert untersucht wird. Exemplarisch werden eine Reihe von Shadern beschrieben, die von bekannten, einfachen Algorithmen bis zu sehr speziellen Anwendungen reichen, und auch Konstrukte aus dem Gebiet der Programmiersprachen einschließen. Ein Abschnitt ist verwandten Arbeiten gewidmet, allen voran RENDERMAN, dem Quasistandard im Bereich programmierbarer Grafiksysteme. Es wird demonstriert, daß das hier vorgestellte System dahingehend erweitert werden kann, eine RENDERMAN-artige Schnittstelle anzubieten, so daß der programmierbare Beleuchtungsprozeß ("shading process") selbst in der Notation einer komplett anderen Programmierschnittstelle formuliert werden kann. Eine weitere Eigenschaft des hier beschriebenen Systems ist die algorithmische Optimierung des Beleuchtungsprozesses noch während der Programmlaufzeit, wobei selbst szenenabhängige Optimierungen möglich sind. Hierzu werden aus dem Compilerbau und der Kodeoptimierung entlehnte Methoden eingesetzt. Auf diese Weise kann der Beleuchtungsprozeß - die Verwendung angemessener Optimierungstechniken vorausgesetzt - signifikant beschleunigt werden. Alle Optimierungen können automatisch, ohne notwendige Benutzerinteraktion, ausgeführt werden, obwohl Einflußnahme hierauf, falls gewünscht, möglich ist. Die vorliegende Arbeit beschreibt ein flexibles und allgemeines Konzept für den Entwurf programmierbarer Grafiksysteme ("programmable shading systems"). Eine entsprechend entwickelte Softwarearchitektur identifiziert und überwindet dabei einige der von alternativen Ansätzen her bekannten Beschränkungen. Obwohl das Hauptaugenmerk der Architektur auf Flexibilität, Allgemeinheit und weitestgehender Offenheit liegt, werden Ziele wie Sicherheit und Effizienz nicht vernachlässigt. Wenngleich diese Ziele nicht neu, und allgemein wünschenswert sind, ist ein neuartiger Ansatz entwickelt und erfolgreich implementiert worden, der sie erfüllt, und dabei zugleich überraschend einfach zu verstehen und zu benutzen ist. Das System orientiert sich entlang zweier Konzepte, die in der Arbeit entwickelt und erläutert werden: Dem Poxel, der ein Modell für die Kapselung des inneren Zustandes des Bilderzeugungsprozesses ("rendering process") darstellt, und dem Shader, der dazu dient, eben diesen Zustand zu manipulieren. Ausgehend von diesen beiden Konzepten wird ein leistungsfähiger Mechanismus entwickelt, der dazu dient, komplexe Bilderzeugungsalgorithmen ("rendering algorithms") zu konstruieren. Dadurch, daß sowohl Operationen auf Daten, als auch der Datenfluß an sich durch das selbe Konzept - den Shader - ausgedrückt werden, können komplexe Algorithmen aus vordefinierten, sowie speziell konstruierten Bausteinen zusammengesetzt werden, was zum einen der Wiederverwendung, zum anderen aber auch der Prototyperstellung entgegen kommt. Durch Verwendung eines objektorienterten Ansatzes im Bereich der Modellierung und der Bilderzeugung kann das System eine Vielzahl von Aufgaben bew¨ altigen, bis hin zur gleichzeitigen Unterstützung verschiedener Bilderzeugungsverfahren wie etwa Strahlverfolgung und zeilenorientierten Methoden innerhalb des selben Bildes. Die speziellen Eigenschaften der Shader erlauben eine vielseitige Anwendbarkeit, welche in der Arbeit detailliert untersucht wird. Exemplarisch werden eine Reihe von Shadern beschrieben, die von bekannten, einfachen Algorithmen bis zu sehr speziellen Anwendungen reichen, und auch Konstrukte aus dem Gebiet der Programmiersprachen einschließen. Ein Abschnitt ist verwandten Arbeiten gewidmet, allen voran RENDERMAN, dem Quasistandard im Bereich programmierbarer Grafiksysteme. Es wird demonstriert, daß das hier vorgestellte System dahingehend erweitert werden kann, eine RENDERMAN-artige Schnittstelle anzubieten, so daß der programmierbare Beleuchtungsprozeß ("shading process") selbst in der Notation einer komplett anderen Programmierschnittstelle formuliert werden kann. Eine weitere Eigenschaft des hier beschriebenen Systems ist die algorithmische Optimierung des Beleuchtungsprozesses noch während der Programmlaufzeit, wobei selbst szenenabhängige Optimierungen möglich sind. Hierzu werden aus dem Compilerbau und der Kodeoptimierung entlehnte Methoden eingesetzt. Auf diese Weise kann der Beleuchtungsprozeß - die Verwendung angemessener Optimierungstechniken vorausgesetzt - signifikant beschleunigt werden. Alle Optimierungen können automatisch, ohne notwendige Benutzerinteraktion, ausgeführt werden, obwohl Einflußnahme hierauf, falls gewünscht, möglich ist.

 

This thesis describes and discusses a flexible and general concept for the design of a programmable shading system. The architecture developed here identifies and attacks some of the limitations known to be present in other approaches. While the main focus is on flexibility, generality and far reaching openness, goals such as safety and efficiency shall not be compromised. Although these goals are not new, and often desirable, an original approach has been developed and successfully implemented that meets them, while being surprisingly simple to understand and use. The systemis centered around two basic concepts, which are derived and explained in the thesis: the poxel, which is a model for encapsulating the inner state of the ren-dering process, and the shader, which is used to manipulate this state. Atop these two concepts, a powerful mechanism is developed that can be used to construct complex rendering algorithms. By expressing both data manipulation and data flow control with the same concept - the shader - arbitrarily complex algorithms can be implemented by composing predefined building blocks and custom components, thus promoting reuse and prototyping. Together with an object oriented approach to modeling and rendering, the system is capable of serving a large variety of needs, including the cooperation of different rendering methods such as ray tracing and scanline oriented methods in the same image. The special properties of shaders allow for a wide applicability, which is explored in detail. A number of example shaders are described, ranging from well known basic algorithms to special applications, including constructs from the field of programming languages. A section is devoted to related work, especially RENDERMAN,which is the quasi standard in programmable shading. It is shown that the system can be extended to offer a RENDERMAN-like interface, so that the shading process can even be specified in terms of a completely different programming interface. One of the key features of the system described here is that it allows the shad-ing process to be optimized at run time using techniques borrowed from compiler construction and code optimization. It even supports scene-dependent optimization. Thus, using appropriate techniques, the shading process can be significantly sped-up. All these optimizations can be performed automatically without user intervention, although the user has the ability to interfere with the process, if so desired .

: http://publica.fraunhofer.de/dokumente/B-73076.html