Atesman, N. C. (2015). PURGE design and implementation of a high-level graphics engine [Diploma Thesis, Technische Universität Wien]. reposiTUm. https://doi.org/10.34726/hss.2015.33717
Beim Entwickeln von Grafik-Engines liegt des Augenmerk meist auf der Performance, gemessen an der Anzahl Frames pro Sekunde, die die Engine zu generieren vermag. Dieser starke Fokus auf die Effizienz führt in vielen Fällen dazu, dass sich auch performancerelevante Details der Implementierung in der API wiederfinden um eine möglichst effiziente Verwendeung des Produkts zu ermöglichen. Durch diese Herangehensweise wird für die Verwendung solcher APIs einiges an Wissen in Teilbereichen der Grafikprogrammierung vorausgesetzt. Wir wollen im Rahmen dieser Arbeit die Notwendigkeit dieser Herangehensweise überprüfen. Wir wollen herausfinden, ob eine Reduktion des benötigten Fachwissens einen direkten Performance-Verlust zur Folge hat. Wir haben zu diesem Zweck drei quelloffene Grafik-Engines analysiert, um Konzepte zu identifizieren, die außerhalb der Grafikdomäne wenig Verbreitung finden. Auf Basis unserer Erkenntnisse haben wir PURGE - eine eigene Grafik-API - entwickelt, die auf die Verwendung durch Entwickler ausgerichtet ist, die wenig bis überhaupt keine Erfahrung in dieser Domäne besitzen. Anschließende Tests haben ergeben, dass diese zusätzliche Software-Ebene kaum Auswirkungen auf die Performance von visuell einfachen Applikationen hat.
de
When referring to the quality of 3D graphics engines, the central point of interest is usually computational performance. This very intense occupation with this aspect of such graphics engines leads to the exposure of performance-relevant implementation specifics in the API, to allow performance-aware usage of the product, but limiting the audience to those knowledgeable about the details of graphics engine implementation. Our aim was to evaluate whether the amount of domain knowledge in existing graphics engine APIs was justified; whether it would be possible to reduce the knowledge expected from the user of such APIs without sacrificing too much performance. We have analyzed three different open source graphics engines to identify elements that are less known outside of the graphics development domain. Based on our findings, we have created PURGE, our own high-level API for graphics development, which makes use of other libraries for the actual rendering. We have found that the performance impact of the added software layer was not noticeable during the development of simple test scenes, which we assume to be the prior concern of developers who are starting graphics development for the first time.