Retro-test : Voodoo 5 6000
By Steven M. - 23/05/2005
Verzeichnis:

 

VSA100 : Das Herz des Monsters

 

Auf einer Voodoo 5 6000 finden wir 4 VSA-100 Chips mit den folgenden Eckdaten:

    - 166MHz Taktfrequenz
    - 0.25 µm Fertigungsprozess
    - 14 Millionen Transistoren
    - AGP 4x und PCI Schnittstelle
    - Bis zu 64MB Grafikspeicher mit 128 Bit Anbindung pro Chip
    - 333Mpixel/s Single Texturing Füllrate bzw. 166 Mpixel/s bei Dual Texturing

Der VSA-100 (Voodoo Scalable Architecture) kann als massive Überarbeitung des Voodoo 3 als direkter Konkurrent zu ATI oder Nvidia's Produkten angesehen werden. Beispielsweise beherrscht er 32-Bit Rendering bis zu einer Texturgrösse von 2048 auf 2048 Bildpunkte. Bei der nominalen Frequenz von 166 MHz ist die Bandbreite jedes VSA-100 (128 Bit *166*106 Hz)/8 Bit = 2.67GB/Sek . Einige wenige Voodoo 5 wurden noch mit dem Nachfolger VSA-101 (Daytona) ausgerüstet, dieser ist ein VSA-100 welcher in 0.18 µm gefertigt ist und somit weniger Wärme abgibt, zudem beinhaltet er die Unterstützung von DDR Speicher.

 

  • Das SLI

Das SLI Verfahren des VSA-100 hatte im Grunde nichtsmehr gemeinsam mit dem der Voodoo 2 Systeme. Die alten Systeme waren auf zwei Einheiten beschränkt, wobei eine Einheit immer eine andere Linie berechnete. Der VSA-100 wurde konzipiert um in einem maximalen Verbund von 32 Geschwistern zu rechnen. Schauen wir uns einmal Voodoo 5 5500 genauer an:

 

 

Auf dieser Karte arbeiten zwei VSA-100 im Verbund, einer davon ist der Master und der andere sein Helfer (Slave). Als erstes ist wichtig zu wissen, dass jeder Chip seinen eigenen Speicher besitzt.
Auf einer Voodoo 5 5500 besitzt jeder der beiden Chips einen 32 MB grossen Grafikspeicher. Und so funktioniert der Verbund:

  1. Der Masterchip analysiert das zu berechnende Bild und schneidet es in Einzelteile zu je 1 bis 128 Linien um so zu erreichen, das jeder Chip in etwa die selbe Arbeit verrichten muss.
  2. Der Master schickt nun die halbe Arbeit zum Slave.
  3. Der Slave berechnet nun die vorgelegten Aufgaben und sendet die Resultate zurück an den Master.
  4. Beide Datensegmente werden im Framebuffer kombiniert und dann als Bild ausgegeben .

Leider lies sich nirgends herausfinden, wie gross die bandbreite der Datenverbindung beider VSA-100 Chips ist. Es liegt die Vermutung nahe, dass diese aufgrund der Architektur in etwa folgende Eckdaten hat: 128Bit/166MHz.

Betrachtet man das Ganze näher erkennt man jedoch Probleme mit dieser Technologie, einige Texturen können zu gleicher Zeit in beiden VSA-100 Chips einen Teil des Speichers belegen falls sie in beiden zu Berechnungen benötigt werden. Es ist auch nicht direkt möglich die Speicherbandbreite als 2* 2.67GB/sec zu definieren, da dies in unserem Fall stark von den Zugriffen abhängig ist. Zu einem späteren Zeitpunkt werden wir sehen, dass oben genannte Methode zur Verbindung der VSA-100 Chips nur mit einem einzelnen Paar funktioniert. Wenn wir mehr als ein Paar Chips verwenden, wir es nötig einen Karteigenen PCI Bus zwischen den Chips aufzubauen, dazu benutzen wir eine PCI-to-PCI Bridge wie sie auf der Voodoo 5 6000 zum Einsatz kommt.

 

  • Dîe FXT1 Kompression

Eine andere Neuerung des VSA-100 war die FXT1 Texturkompression. Diese Anwendung war schon zu Beginn Open Source und durfte von jedermann frei verwendet werden. Der Hauptunterschied zwischen FXT1 und dem aktuell verwendeten S3TC ist, dass man bis zu vier Schichten auf eine Textur aufrechnen kann wo S3TC (=DXTC) nur eine zulässt. Die FXT1 Texturdekompression ist in dem VSA-100 Chip hardwaremässig integriert. Leider kam dieses Verfahren nie gross zum Einsatz, da es nie in die DirectX Schnittstelle von Microsoft integriert wurde. Trotzdem findet es sich auch inaktuellen Spielen wie Serious Sam wieder.

 

 

Der Sinn hinter der Verwendung einer solchen Kompression ist schnell gefunden: Man kann in einer Szene mehr Texturen verwenden, da diese weniger Speicher benötigen. Eine andere Möglichkeit ist die Verwendung grösserer Texturen oder die Verwendung von mehreren Texturen auf einem Objekt (Bump Mapping).

 

 

  • Der T-Buffer

Bereits 1984 veröffentlichten Angestellte von Lucas Arts ein Dokument mit dem Namen "Distributed Ray Tracing" welches das grundlegenden Problem der Treppenbildung (aliasing) bei Computer gerenderten Bildern aufzeigt. Danach wurden neue Ray Tracing genannte Technologien entwickelt, welche die Bildqualität erheblich verbesserten.. Das Problem dabei war jedoch, dass diese Anwendungen zuviel Rechenleistungen benötigen um sie in Echtzeit auszuführen. Eine Lösung für dieses Problem wurde 1990 von SGI in dem Dokument "The Accumulation Buffer: Hardware Support for High-Quality Rendering" beschrieben. Dieser Zwischenspeicher (Buffer) behält eine Anzahl der Renderbilder bei und wendet verschiedene Effekte auf diese an. Der T-Buffer von 3dfx basiert direkt auf diesen Vorgaben.

Der T-Buffer war das absolute Novum der VSA-100 Chips als diese auf den Markt kamen und es ist vermutlich die Hauptstärke dieses Chips. Nachfolgend sieht man wo dieser Speicher auf einer normalen Karte zu finden ist.

 

 

Der T-Buffer speichert eine Anzahl leicht abweichender Bilder von gleichen Sequenzen und ist in der Lage aus diesen einzelnen Bildern interessante Effekte zu generieren:

- Das FSAA (Eine Form von spatial anti-aliasing): Wir werden uns dieser Technologie später zuwenden, da diese bei weitem die interessanteste Anwendung des T-Buffers ist. Der Sinn hinter anti aliasing ist es, den Treppeneffekt und flackernde Bildpunkte in Bildern zu verhindern bzw. zu verwischen. Ein gutes Beispiel von Treppenbildung ist auf den folgenden Bildern ersichtlich.

 


- Das motion blur (temporal anti-aliasing): Dieser Effekt erzeugt eine Unschärfe wenn sich ein Objekt im Bild bewegt, eine Art Bildschatten wenn man so will. Sinn und Zweck hinter dieser Methode ist es, die Bilder realistischer und flüssiger wirken zu lassen.

 


- Das depth of field blur (focal anti-aliasing): Dieser Effekt ermöglicht Unschärfen im Bild wie diese oft in Filem anzutreffen sind. Es ist eine Art von Fokusierung auf ein einzelnes Objekt in einem Bild, wie man dem nachfolgenden Beispiel gut ansieht:

 

 


- Die soft shadows: Diese Funktion erlaubt flüssige Bildübergänge zwischen Schatten und deren Umgebung ohne Kontrastreiche Ränder. Das soft shadow Verfahren errechnete einen Zwischenwert der Beleuchtung und lies so Schatten realistischer und nicht beschnitten erscheinen.

- Die soft reflections: Um diese Technologie zu verstehen muss man sich folgendes vorstellen. Stellen wir uns vor die Spitze eines Bleistiftes liegt auf einer blankpolierten Metallplatte auf, man sieht die Spiegelung scharf bis zum Spitz der auf die Platte aufliegt. Entfernt man un den Stift von der Platte so wird dieser in der Refelktion immer unschärfer. Diese Technologie versucht genau diesen Effekt darzustellen.

 

  • Das FSAA

Wie schon zuvor erwähnt ist das FSAA (Full Scene Anti Aliasing) die meistgenutzte Anwendung des T-Buffers. Es ermöglicht eine Verbesserung der Bildqualität durch beheben der durch das Rendering entstandenen Bildanomalien. Es ist eine spezielle Anwendung des spatial anti-aliasing.

Das grösste Problem ist der Treppeneffekt wie man ihn auf folgendem Bild gut sieht:

 

 

Das andere grosse Problem ist das so genannte "pixel popping" dies ist besonders gut an den Rändern von bewegten Objekten wahrnehmbar. Dies tritt besonders auf wenn ein Polygon kleiner als ein Pixel ist, oder Polygone aufgrund ihrer Anordnung nicht perfekt aneinander liegen (die kleinen Punkte auf der Darstellung). Das Resultat ist ein Erscheinen und Verschwinden von Bildpunkten eines Objektes wenn dieses sich bewegt.

 

 

Um diese Probleme (genannt aliasing) zu beheben, wird anti-aliasing angewendet. Rein theoretisch ist die Anwendung von AA sehr einfach: Es ist erforderlich die Pixel rund um das eine kritische auf ihre Farbe zu untersuchen und genügende drum herum mit dieser anzupassen. In der Praxis werden für diese Anpassungen super-sampling oder besser gesagt zwei Unterstufen von over-sampling und multi-sampling angewendet.

Over-sampling ist die in den GeForce und Radeon Grafikkarten genutzte Technologie und besteht aus der Anwendung einer höheren Auflösung des Bildes bei der Berechnung als bei der Darstellung. Nach der Berechnung wird das Bild durch einen Filter auf die gewünschte Auflösung heruntergerechnet. (zum Beispiel durch bilinear filtering). Diese Methode verwendet OGSS sampling.

Multi-sampling ist die im VSA-100 Chip verwendete Technik und basiert auf der zwei bzw. vierfachen Berechnung eines Bildes im  T-Buffer wobei das Bild immer ein klein wenig verschoben und dann durch RGSS neu gesampelt wird.

 

 

Auf dem oberen Bild sieht man dass das RGSS sampling fast genau dem OGSS sampling entspricht jedoch besteht eine Rotation von 20-30°. RGSS nutzt diesen Winkel um beim anti aliasing eine bessere Qualität von direkt horizontal oder vertikal verlaufenden Linien zu erreichen, dies aus folgendem Grund:  Die Berechnungspunkte werden immer an den äussersten Punkten dieser Linien angesetzt. Jedoch sind es genau diese Linien auf welchen das menschliche Auge Anomalien am besten wahrnimmt, aus diesem Grund ist die Bildqualität mit RGSS theoretisch besser. Hier sehen wir ein Anwendungsbeispiel von RGSS das durch einen VSA-100 Chip berechnet wurde.

 

 

FSAA kann in jedem Spiel zusammen mit anderen T-Buffer Effekten zum Einsatz kommen, da dieser Effekt keine Softwareimplementation voraussetzt ausser den Treiber selbst. Für weitere Informationen empfiehlt sich dieses document von Beyond3D. Interessierte sollten sich ein wenig Zeit für dieses Dokument nehmen.

Entgegen diesen Features hat der VSA-100 keine Unterstützung für zwei wichtige Funktionen: Er beherrscht kein T&L und keine Pixel Shaders. Zu dieser Zeit wurden diese Features zwar grossartig von einigen Games angeboten, sind im Rückklick jedoch nicht ganz so gewichtig wie zunächst angenommen.

 

Weiter ( Test Hardware )

Fermer