GU - Grafikpower der PSP

Dieser Bereich soll sich mit der GU “Graphic Unit” der PSP beschäftigen. Hier werde ich ausführen wie diese initialisiert wird um sie für seine Zwecke zu nutzen. In den einzelnen Blogs wird bei Neuigkeiten immer wieder auf diese und darunterliegende Seiten referenziert werden.

Der virtuelle Raum der PSP
Damit die Abbildung 3 dimensionaler Objekte funktionieren kann, braucht man einen virtuellen 3 dimensionalen Raum in dem man seine Objekte platzieren kann. In eben dem selben befindet sich dann quasi eine virtuelle Kamera durch die man die Objekte betrachten kann. Das was die Kamera sieht bringt die GU dann auf den PSP Bildschirm.
Dieser virtuelle Raum - auch oft als “World space” bezeichnet - hat bei der PSP eine Ausdehnung von 4096 Einheiten in die X- und Y-Richtung. Die Ausdehnungsbegrenzung der Z-Achse ist mir nicht bekannt. Es wird von der GU ein Links-Händiges Koordinatensystem verwendet. Wer wissen möchte was damit gemeint ist, wird bei Google sehr schnell fündig :)

Arbeitsweise der GU
Die GU der PSP arbeitet Kommandos ähnlich einem Batch ab. Das heißt, dass alle Aktionen/Befehle die von der GU verarbeitet werden sollen in einer Art Liste gesammelt werden. Anschließend wird die Liste der GU zur Bearbeitung übergeben. Der Vorteil: Während die GU diese Liste abarbeitet kann das normale Programm fortgesetzt werden.

Virtuelle Objekte im virtuellen Raum
Jedes Objekt im virtuellen Raum wird - wie üblich - durch Dreiecke beschrieben. Jedes Dreieck wiederum wird durch 3 Punkte beschrieben. Jeder Punkt wird mittels eines Vektors beschrieben. Der Vektor enthält dabei die x, y und z - Koordinaten des Punktes bezogen auf den Koordinatenursprung - dem Null-Punkt. Bei der Beschreibung der Objekte durch Dreiecke ist es von Bedeutung in welcher Reihenfolge die Punkte angeordnet sind. Dadurch “weiß” die GU wo vorne und wo hinten ist. Wir stellen uns vor dem geistigen Auge ein Dreick vor auf das man von oben drauf schaut. Wenn man nun die Punkte im Uhrzeigersinn aufzählt, und so das Dreieck beschreibt dann ist die Seite des Dreieckes das wir sehen vorne. Sind die Punkte dagegen gegen den Uhrzeigersinn angeordnet, dann schaut man auf die Rückseite. Dies ist insofern wichtig, da mann der GU aus performance Gründen die Berechnung der Flächen die man nur von “hinten” sieht verbieten kann. Schließlich muss man von einem Würfel ja nicht die Innenseite berechnen, wenn sie nie zu sehen ist.

Die virtuelle Kamera
Für die Darstellung der virtuellen Objekte des virtuellen Raumes auf dem realen Bildschirm der PSP wird dieser ebenso im virtuellen Raum platziert. Dies wird im allgemeinen auch Viewport genannt. Dieser Viewport/virtuelle Bildschirm hat im virtuellen Raum in der Regel “reale” Abmessungen ;) und ist damit im Normalfall 480 Einheiten breit und 272 Einheiten hoch - genauso wie der Bildschirm.

Puffer
Für flimmerfreies darstellen der virtuellen 3D Welt arbeitet die GU mit zwei Puffern, zwischen denen nach jedem “Zeichenvorgang” gewechselt wird/werden muss. Zusätzlich besitzt die GU noch einen Tiefenpuffer - auch als Z-Puffer bekannt. Damit ist es für die GU möglich sicherzustellen, dass verdeckte Objekte garnicht bzw. dass sich überlappende Objekte immer in der richtigen Reihenfolge dargestellt werden.