Satzer, M. (2008). Console engine design on the example of the PlayStation 2 in comparison to the PC [Master Thesis, Technische Universität Wien]. reposiTUm. http://hdl.handle.net/20.500.12708/178366
3D Grafik ist ein wichtiger Bestandteil von vielen Anwendungen, von Computerspielen bis hin zu medizinischer- und Architektur-Visualisierung. Speziell Spiele treiben die Entwicklung von Grafik-Hardware und neuen Spiel-Konsolen voran. Die Grafik-Engine ist die Komponente der Software, die verantwortlich ist für die visuelle Darstellung. Diese ist auf dem PC sehr unterschiedlich zu Konsolen, da sich die Hardware signifikant unterscheidet. Diese Unterschiede stellen zum einen eine Herausforderung an das Design und ein Umdenken zur Rendering Pipeline am PC dar, zum anderen bieten sie den Vorteil auf eine bestimmte Hardware Konfiguration hin optimieren zu können. Die Multi-Prozessor Technologie der PlayStation 2 mit der ausführlichen Nutzung von parallelen Datenwegen und Processing Units ist ideal, um die Unterschiede zwischen dem PC und einer Konsolen-Plattform anhand eines Rendering Engine Prototyps zu zeigen. Das Design einer Engine für Multi-Prozessor-Hardware biete viele Möglichkeiten, aber auch einige Herausforderungen. Um ein Basiswissen anzubieten wird eine Übersicht der Hardware der PlayStation 2 gegeben, die das leichtere Verständnis der komplexeren Zusammenhänge für das Engine Layout erleichtern soll. Der grundlegende Unterschied zu einer Engine am PC ist das fehlende Grafik-API, wie ÜpenGL oder DirectX, das zwischen abstrakten API-Funktionen und der Hardware steht um Kompatibiltät zu verschiedenen Treibern und Hardware-Konfigurationen zu ermöglichen. Aufgrund des fixen Hardware-Layouts einer Konsole ist es möglich die Engine genau auf diese Konfiguration hin zu optimieren und anzupassen, ohne auf Kompatibilität achten zu müssen. Um akzeptable Leistung der Engine zu erhalten ist es nötig, die verschiedenen Komponenten korrekt einzubinden. Diese werden inklusive der Techniken zur Verwendung im Detail erklärt. Die PlayStation 2 bietet parallelen Datentransfer entlang dreier verschiedenen Wege vom Hauptspeicher zu Rasterizer. Diese müssen synchronisiert werden, wofür zwei verschiedene Methoden vorgestellt und erklärt werden. Diejenige, die CPU-unabhängig ist und den DMA Controller der PlayStation 2 verwendet wurde implementiert. Der Kernteil dieser Arbeit ist der direkte Vergleich zwischen dem Engine-Design und der Implementierung auf der PlayStation 2 und dem PC. Dieser wird speziell deutlich gemacht anhand verschiedener kleiner Effekte, wie Motion Blur, Glow oder Environment Mapping, die auf der PlayStation 2 unter Ausnutzung verschiedener Hardware-Features implementiert wurden. Aufgrund dieser werden durch einen detaillierten Vergleich die Unterschiede und deren Vor- und Nachteile sichtbar. Der Engine-Prototyp beinhaltet eine Toolchain für Modell- und Textur-Daten von der 3D-Modelling-Applikation in ein PS2 optimiertes Format, um eine schnelle Verwendung der Daten zu ermöglichen. Der Prototyp verwendet die vorhandenen Vector Units um die CPU zu entlasten und die Arbeit zu verlagern und die CPU für andere Aufgaben frei zu halten. Er macht ausführliche Verwendung vom DMA Transfer um parallel Texturen und andere Daten zwischen Hardware-Komponenten zu verschieben. Verschiedene Spezialeffekte wurden implementiert um die Unterschiede zwischen konventioneller PC-Hardware und der PlayStation 2 hervorzuheben. Diese Arbeit präsentiert ein Rendering Engine Design angepasst an die Hardware der PlayStation 2, die die Besonderheiten eben dieser ausnützt, und vergleicht die Möglichkeiten mit denen konventioneller PCs. Sie ist gegliedert in eine grundlegende Übersicht des Rendering-Prozesses und einer Erklärung der Hardware der PlayStation 2. Folgend wird das Layout der Rendering Engine inklusive der Design-Probleme und Möglichkeiten dargestellt. Ein ausführlicher Vergleich mit den Vor- und Nachteilen eines PCs inklusive der Schlußfolgerung schließen die Arbeit ab.
3D Graphics are an important part of a lot of software nowadays, ranging from games to medical or architectural visualization. Especially games drive the development of more and more powerful graphic cards and consoles. The graphics engine is thecomponent of the software responsible for visual presentation. On consoles the hardware layout is different to that of a standard PC, thus making it interesting to adapt and optimize a rendering engine for a specific hardware onfiguration. The multi-processor technology of the PlayStation 2 with its extensive parallelism is optimal to show the differences between platforms with a rendering engine prototype. To get basic knowledge, an overview of the hardware along with design strategies is given. The main difference to a PC engine is the non-existence of a graphics API like OpenGL or DirectX. Because of he fixed hardware layout it is possible to design the engine to fit perfectly to the available hardware and optimize it accordingly without any need for compatibility to different hardware settings. To get acceptable performance on the PlayStation 2, various buffering schemes, as well as the use of the different available processing units are explained and incorporated in the engine design. The PlayStation 2 offers parallelism in the rasterizer, which creates the need for synchronization. To achieve this, two different techniques are explained and a CPU-independent synchronization using the DMA controller is implemented. The main part of the thesis is the direct comparison between an engine design for the PlayStation 2 and the PC. This is especially shown on various small effects, like motion blur or glow, implemented on the PlayStation 2, exploiting specialized features available only on this platform, and the PC. The engine prototype includes a toolchain for models and textures into a PlayStation 2 optimized format for fast usage. It uses the available Vector Units to shift processing load from the CPU to the other components and makes excessive usage of DMA transfer to get parallel upload of textures and other data. Various spezial effects were implemented to help to point out the differences between conventional PC hardware and the PlayStation 2. Summing up, this thesis proposes an engine design for the PlayStation 2 using various features of this hardware and comparing its possibilities with those of conventional PC hardware. The thesis is divided into a basic overview of the rendering steps and the hardware of the PlayStation 2. This is followed by a detailed layout of the design issues for the engine and a comparison to the PC.