Login |
|
|
|
|
Websiteinfo's |
|
|
|
|
|
| ATI's TRUFORM |
_MD_RATINGC (_MD_RATING)
|
| Vorwort Das ATI-Feature TRUFORM gehört zum festen Bestand der Radeon 8500, 9000, 9100, 9200, 9500, 9600, 9700, 9800er –Karten. Da es noch in einigen Foren umdiskutiert wird, möchte ich hierzu einen ausführlichen Bericht schreiben. Die Hauptvorgänge innerhalb der GPU (im Zusammenhand mit TRUFORM) werden hiermit detailliert erklärt.
Inhalt Bei einem Grafikwettbewerb zwischen Nvidia und ATI im Jahre 2001 trat der zweite Hersteller mit der Grakifkarte Radeon 8500 an. Diese, für damalige Verhältnisse, sehr leistungsfähige Karte lag taktmäßig klar hinter der GeForce 3 Ti 500 zurück, setzte aber eine vielversprechende Technologie namens TRUFORM ein.
Ähnlich wie die neuere „Hidden-Surface-Removal“ Technologie des Kyro Chips versprach TRUFORM eine wesentliche Steigerung der Bildqualität ohne Performance-Verluste. Dies sollte durch die besonders rationale Verteilung der Berechnungsaufgaben auf die GPU gewährleistet werden.
Trotz hervorragender Erfolgschancen wurde die Vermarktung des Kyro Chips(auch KyroII) und der dazugehörigen HSR zu einem Missmarkt: die Grafikkarte war für ihren Preis nicht nur lahm und untertaktet. Die „neue“ Grafiktechnik brachte erhebliche Schwierigkeiten mit sich, denn längst nicht alle „unsichbaren“ Flächen trugen zur Qualitätserhaltung bei. Das beste Beispiel ist hier die „Need for Speed“-Reihe. Jedem Kyro-Besitzer stank, dass der Boden und die Karosserie des Fahrzeugs überhaupt nicht gerendert wurden.
Dummerweise war dieses HSR hardwäremäßig als Grafikfeature eingebaut und ließ sich überhaupt nicht abschalten. Die Versuche des Herstellers eifrig neue Treiber und Patches zu entwickeln führten nur noch zu weiteren Fehlern und Bugs…
„TRUFORM“ ist keinesfalls eine reine ATI-Entwicklung. Bereits die Konsole N64 (1996) und die PSone benutzten eine relativ simple geometrische Interpolation, d.h. eine bestimmte Beleuchtung der Polygonenebenen. Vor allem die N64 beeindruckte durch neuartige Effekte: die Fernseherauflösung lag bei 640x480 oder sogar bei 800x600…..doch die Ausgabe betrug lediglich 320x240. Das Endbild wurde auf PAL-Breite „gestreckt“. Die dadurch entstehenden Macken verschwanden durch Guro-Lighting, Full-Screen-Antialising und bis zu 8 Farbenquellen . Dazu kam noch das Multi-Texturing und angeblich auch ein einfacherer bilinärer Filter (wahrscheinlich 2x). Im Prinzip handelt es sich hier um nichts anderes als heutzugtage recht verbreitete MipMap-Interpolation, der Zwischentexturen inklusive
Kein Wunder also, dass die schwächliche N64 solche Grafikwunder hervorzauberte. Die Konsolen waren den PC-Systemen meilenweit voraus (grafisch, versteht sich). Dieses alte System ist eine krasse Bestätigung.
Nun zu TRUFORM selbst. Der Grundgedanke der Technik besteht darin, aus einer Ebenen eine glatte und gewölbt wirkende Fläche herzustellen. Nun, das klingt zunächst sehr einfach. Tatsächlich aber sind mehrere GPU-Altgorithmen nötig um solch ein Ergebnis auszugeben. Die Spiele-3D-Grafik bestehen bekanntlich aus Polygonen (Dreiecken, die dynamisch miteinander verbunden sind). Je mehr Dreiecke eine Figur, Umwelt etc. besitzt, desto flüssiger erscheint sie. Ein kleines Beispiel:
| | | 4 Segmente | 12 Segmente | 100 Segmente | Ein beliebiges Objekt mit mehr Polygonen erscheint schöner und realistischer. Wie man leicht bemerken kann, hat die 100er Kugel einen lebensecht wirkenden Glanz, die 12er dagegen nur eine fälschliche Darstellung. Dieser Effekt kommt durch die Schattierung der Polygone – je mehr Segmente eine Kugel hat, desto mehr Dreiecke hat sie, desto kleinere Schatte werfen die auf die benachbarten Dreicke. Eine Sphäre mit 1000 Segmenten würde dementsprechend einen noch realistischeren Glanz wiedergeben. Der hohe Detailgrad wird durch die Krümmung offensichtlich. Beeindruckende Filme wie „Toy Story“, „Shrek“, „Final Fantasy“ auf der Weise der Überkrümmung, d.h. ein täuschend echten Krümmung, realisiert. Selbstverständlich lässt sich dies auch in der Spieleindustrie anwenden.
Ein beliebiger Polygon „trägt“ stets 6 Informationen mit sich, die seine Lage und sein Aussehen unverwechselbar defenieren: Das sind 3 Höhen des Dreiecks und die 3 dazugehörigen Shading-Masken (Normals). Normalerweise fängt der Pozessor an, die Masken aufzulegen und zu belichten um so einen Polygon zu schattieren – aber nicht bei TRUFORM.
TRUFORM analsiert zunächts die Polygonenstrukturen; ihre Anzahl, ihren Index etc. Nachdem die GPU die Informationen erhalten hat, fängt sie an N-Patches zu kreieren. Die N-Patches sind ein Bestandteil des DirectX 8.1. Daraus bildet sich ein N-Patches-Netz. Das N-Patches-Netz sind dots und Kanten auf der Grundfläche des bearbeiteten Dreiecks. Um einen N-Dot herzustellen werden über dem Dreieck 2 Kontrollpunkte festgelegt. Dadurch entstehen 6 neue Höhen. Jeder N-Dot steht winkeltreu zu der Shading-Maske. Die Kontrollpunkte der N-Dot werden entsprechend der Shading-Maske ausgerichtet. Auf dem Bild sieht man den Kontrollpunkt b210, senkrecht zum Normal N1.
Durch das N-Patches-Netz entstehen somit weitere Punkte, die die Schwerpunkte eines neuen N-Dreiecks sind. N-Dreicke sind (immernoch) flache Scheindreicke die durch die N-Dots entstanden sind (im Beispiel 9 N-Dreicke). Zu den berechneten x- und y-Koordinaten der N-Dots kommen die z-Koordinaten der Shading-Masken, so dass ein räumliches Gitter aus 9 Einzeldreicken entseht.
Die einst ebene Fläche wird mit Hilfe der Tesselation (Splitting) in mehrere gleichmäßige Dreicke aufgeteilt und diese anschließend interpoliert. Die Aufteilung kann theoretisch so oft passieren wie man möchte. Da dieser Vorgang von der Transform & Lighting- Engine übernommen wird, dürfte es (ebenfalls theoretisch) kein Leistungsverlust geben. Durch die Tesselation sollte es zu realistischeren Oberflächen kommen.
Natürlich sollte die frisch-entstandene Fläche belichtet werden. Ein N-Patch wird, wie erwähnt, durch 10 Punkte festgenagelt. Durch die ursprünglichen Normals würden fälschliche Schattierungen entstehen, da das Dreieck ja nach Guro beleuchtet sein würde. Wenn man jeden einzelnen Polygonpixel beleuchten würde (Fong-Lighting), würde eine täuschend echte Krümmung mit unnerreichter Genauigkeit entstehen. Da aber so eine Beleuchtung ein Rechenenaufwand ist (jeder Pixel muss beleuchtet werden), wird diese Aufgabe heutzutage gewöhnlich von den Pixel-Shader-Einheiten übernommen. Doch die N-Patches von TRUFORM erlauben ein weiteres, sehr fongnahes Lighting. TRUFORM bildet neue Shading-Masken, die senkrecht zu den Seiten sind.
Während ein 3D-Objekt bereits tesserliert worden ist, wird es gleichzeitig natürlicher beschattet. Das Resultat sieht oft spektakulär aus:
Fazit: Eigentlich sollte TRUFORM die Spielewelt revolutionieren. Um Fehler zu vermeiden sollten 90° zueinander stehende Flachen NICHT tesseliert werden. Doch ATI hat gravierende Fehler gemacht. So wurden die TRUFORM-Algorithmen nur teilweise im T&L-Bereich abgelagert. Das führte zu Performanceeinbußen. Ursprünglich plante ATI einen Treiber mit Regelung des Tesselationslevels herauszubringen um die TRUFORM-Leistung manuell zu optimieren. Doch auch diese Idee wurde weggeworfen. Schließlich endete diese Technologie mit Potential als ein kleiner Schalter im unteren Treiberbereich…...
Bei Fragen oder Kommentaren HIER GEHTS INS FORUM |
|
|
|
PD-Members |
User online: 2
Guests: 2
Members: 0
more...
Members: 423
Today: 0
Yesterday: 0
Latest: LELO_05
|
|
|
|
Werbung |
|
|
|
|