Donnerstag • 29.06.2017 • 10:47 Uhr
 Neuigkeiten
 Artikel
 Downloadbereich
 Bildergalerie
 Forum
 PowerVR FAQ
 Suchmachine
 Mitarbeiter
 Impressum
 SGX544MP angekĂĽndig...
 Der aktuelle Stand
 zweiter SGX Artikel ...
 Die Videofähigkeite...
 neue Treiber fĂĽr Po...
 neuer Treiber mit Ha...
 SGX - Aufbau, Techn...
 neuer Serie5XT Grafi...
 Apple und Intel inve...
 Mehrere weitere Lize...
 SGX - PowerVRs Shade...
 Interview mit ImgTec...
 Quack - das andere D...
 Hercules4500 AGP4x-M...
 Optionen des KYRO Tr...
 FSAA auf KYRO
 Nummer 5 lebt!
 Startpartition von W...
 MBX - Mobile Grafik
 Die Grafikfähigkeit...
 Vivid! - PowerVR Gra...
 Videologic Neon 250
 Geforce 6800 - the n...
 Beyond3d
 BluesNews
 Chrome-Center
 Hartware
 Imagination T.
 ParaKnowYa
 Planet 3dNow!
 PowerVR
 PowerVR-Ext.
 PVR Generations
 Tom's Hardware
 Videologic
 VoodooExtreme

3D Center


PowerVR

Imagination Technologies

SGX - PowerVRs Shader-Grafik
PowerVR – Die Technologie

Wie ich weiter oben schon geschrieben hatte, die Grafikkerne von PowerVR sind sogenannte TBDRs.
TBDR heißt nichts weiter als Tile Based Deferred Renderer (Kachel basierter verzögerter Renderer) im Gegensatz zu allen anderen im Markt befindlichen Grafikkernen, die entweder IMRs (Immediate Mode Renderer) oder eben nur TBRs (Tile Based Renderer) sind. Nur PowerVR hat eine effiziente Technologie entwickelt und im Einsatz, die es ermöglicht, die Pixeloperationen ausschließlich auf garantiert sichtbaren Pixeln durchzuführen. Aus diesem Grunde nennen wir ihre Grafikkerne deferred Renderer.
Eine Zeit lang hatte ich gehofft Intels Larrabee könnte auch ein deferred Renderer werden, es ist aber auch wieder „nur“ ein TBR. Letzteres soll aber nicht heißen, dass der Larrabee schlecht wird, es wird auf jeden Fall ein Monster und spielt in einer ganz anderen Liga als SGX.

Wie funktioniert nun PowerVRs TBDR?
Ganz grob gesagt ist es die Aufgabe eines Renderers, die Daten dreidimensionaler virtueller Objekte in ein zweidimensionales Pixelbild zu ĂĽbertragen.
Dazu mĂĽssen die durch die Anwendung erzeugten geometrischen Objekte, in der Regel aus Dreiecken bestehend, die verschiedenen Stufen der Grafikpipeline durchlaufen, wobei die Pipeline in einen Geometrie- und einen Rasterizerteil getrennt werden kann.
Im Geometrieteil werden alle Operationen durchgefĂĽhrt, die mit den geometrischen Objekten und somit auf Dreiecksbasis durchgefĂĽhrt werden mĂĽssen. Im Rasterizerteil erfolgen dann alle Operationen auf Pixelbasis, wobei zum Schluss das eigentliche sichtbare Bild entsteht.
Diese Prozesse mĂĽssen in jeder Grafikhardware durchlaufen werden, da macht auch PowerVR keine Ausnahme, nur wie sie es tun unterscheidet sie von anderen Anbietern.

logischer Aufbau der GPU

Grundsätzlich werden bei PowerVR Grafik erst einmal alle Daten der darzustellenden Objekte gesammelt. Diese kommen dann in den Tile Accelerator (TA), der für die Geometriestufe der Grafikpipeline verantwortlich ist. Hier werden alle Transformationen, die Beleuchtung, Projektionen, das Clipping und das Culling durchgeführt. Des weiteren werden hier die Objekte den Tiles, also den kleinen Kacheln aus denen das Bild besteht, zugeordnet.
Ich empfehle hier auf jeden Fall, auch einmal die alten Artikel von Kristof Beets auf Beyond3D zu lesen.

Der TA erzeugt im Verlauf der hier genannten Prozesse die Displayliste, welche alle notwendigen Informationen aller noch darzustellenden Objekte enthält. Keine Angst, so groß wie oft befürchtet ist diese Liste gar nicht, es fehlt ja schon sehr viel an Daten. Man kann etwa sagen, dass nur ein drittel der Dreiecke, die in einer Szene vorhanden sind, dann in der Displayliste erscheinen und diese in der Regel auch nur mit je einem Punkt, da der TA die Dreiecke der Objekte zu Stripes zusammenfasst. Die große Masse der Dreiecke wird beim Back-Face-Culling bzw. beim Tilling aus der Szene entfernt. Man bedenke, Tilling ist Clipping, ein Dreieck das keiner Tile zugeordnet werden kann weil es außerhalb des sichtbaren Bereichs liegt ist raus! Natürlich entfernt der TA auch alle Dreiecke, die kleiner sind als ein Pixel und Objekte die offensichtlich vollständig verdeckt werden, werden ebenfalls entfernt.

GPU mit Macro Tills

Sollte die Liste einmal doch zu groß werden, um komplett im Speicher gehalten werden zu können, wird die Szene über sogenannte Macro-Tiles in Bereiche (z.B. ein viertel des Bildschirms) geteilt, die einzeln gerendert und dann zwischen gespeichert werden. Dabei werden dann natürlich auch der z-Buffer und der Frame-Buffer dieser Macro-Tile zwischengespeichert. Durch das Macro-Tilling ist es den Grafikkernen von PowerVR möglich, beliebig große Szenen zu verarbeiten und darzustellen.
Es ist alles nur eine Frage der Speicherverwaltung!

Wenn der Tile Accelerator mit den Daten einer Szene fertig ist, also die Displayliste erzeugt hat, wendet er sich der nächsten Szene zu. Gleichzeitig beginnt der Image Synthesis Prozessor (ISP) mit der Arbeit. Er bestimmt jetzt an Hand der Daten der Displayliste welche Pixel von welchem Dreieck wirklich sichtbar sind, er führt das Hidden Surface Remove (HSR) durch. Der ISP übergibt dann die notwendigen Daten an den Texturing and Shading Processor (TSP), wo dann alle notwendigen Pixeloperationen, aber eben nur noch auf garantiert sichtbaren Pixeln, durchgeführt werden, bevor sie in den Frame-Buffer geschrieben werden.

Da tauchen immer wieder mal Begriffe wie infinite planes auf, was hat es damit auf sich? Ist es nicht viel zu kompliziert ein einfaches Dreieck in unendliche Flächen zu verwandeln, um dann mit den Flächen Tests durchzuführen? Was hat das mit Raycasting zu tun?

Seite 1 2 3 4 5 6 7 8 9 10 11 12 13
 SGX - PowerVRs Shader-Grafik
 13 Seiten
 verfasst von loewe
 Sonntag - 04.01.2009 - 18:53 Uhr
[1]  Einleitung
[2]  Die SGX Grafikkerne
[3]  Aufbau des Grafikkerns Teil 1
[4]  Aufbau des Grafikkerns Teil 2
[5]  PowerVR – Die Technologie
[6]  PowerVR - Das HSR Teil 1
[7]  PowerVR - Das HSR Teil 2
[8]  PowerVR - Das HSR Teil 3
[9]  zurĂĽck zum SGX
[10]  Intel SCH – SGX535 Teil 1
[11]  Intel SCH – SGX535 Teil 2
[12]  Intel SCH – SGX535 Teil 3
[13]  Fazit