- Registriert
- Jan. 2018
- Beiträge
- 19.117
Inhaltsangabe
- Einleitung
- Accumulations Buffer
- Nutzen des T-Buffer
- Anti-Aliasing
- Motion Blur
- Depth of Field
- Soft Shadows und Reflectance Blur
- Abschließende Wort
- technische Daten
Einleitung
Während heutige Grafikkarten locker spielbare FPS auf den Bildschirm zaubern, hat sich die Optik doch nicht mehr so stark verändert, wie zu Zeiten der Voodoo 1. Ja, dank GeForce und der kommenden Radeon werden auch 32 Bit und 1024x768 die Welten optisch weiter aufpolieren, doch wichtige Faktoren fehlen noch.
Quake 3, als absolute Flaggschiff Engine, zeigt uns bereits eine sehr detaillierte Welt, die die Vorfreude auf Star Trek Voyager und Medal of Honor stark gesteigert hat. Doch auch id Softwares Meisterwerk lässt noch einiges vermissen.
Was möchte man denn noch haben, fragt sich der geneigte Leser?
Ganz einfach: Kinofeeling
Hier treten die 3dfx Mannen auf den Plan und haben mit dem T-Buffer* den nächsten Berg erklommen und liegen optisch wieder weit in Führung vor nVidia und ATi!
*benannt nach dem ehemaligen CTO Gary Tarolli
Accumulations Buffer
Der Accumulations Buffer, als direkter Vorgänger, wurde einst bei SGI ersonnen und in OpenGL übernommen. Da die 3dfx Führung aus dieser Firma stammt, war es nur eine Frage der Zeit, bis er auch in eigene Produkte wandert. Aufgrund der hohen Kosten (Transistoren und damit teure Wafer Fläche), dauerte es fast ein Jahrzehnt, bis es in Consumer Hardware landete.
Er zählt zu den sogenannten Offscreen Buffern.
Dieser Buffer übernimmt nur Farbwerte und keine Tiefeninformationen, so dass über diesen keine Objekte ausgetauscht werden können. Um es so genau wie möglich umsetzen zu können, wird intern mit einer höheren Farbtiefe gerechnet, als extern ausgegeben wird. So nutzt z.B. der R300 Chip von ATi 10 Bit pro Farbkanal, wo die GeForce 4 noch 8 Bit nutzt (entspricht 30 und 24 Bit Farbtiefe).
Während man mit der Voodoo 3, aka Avenger Generation etwas ins Hintertreffen geraten ist, wurde der Abstand mit der ersten GeForce 256 weiter ausgebaut. Für viele unbemerkt, konnte die 3dfx Karte trotz nur 16 Bit Farbtiefe sich optisch doch teilweise vor die Riva TNT und TNT 2 setzen.
Da man aber die vorhandene Rechenleistung nicht nur in mehr FPS sehen wollte, tüftelte man an neuer Hardware mit dem Namen T-Buffer.
Nutzen
Was soll dieser T-Buffer jetzt bringen?
Hardware T&L?
48 Bit Farbtiefe?
Auflösungen von 1600*1200? Also UXGA?
Hardware T&L kann einen Teil der CPU-Last auf die Grafikkarte verlegen. So wird die Transformation (T)von Dreiecken in Hardware berechnet, genauso wie Beleuchtungseffekte (L). Dies muss von den Spielen aber explizit unterstützt werden.
Auch sehen wir eine erhöhte Farbtiefe nicht so schnell, auch wenn der VSA-100 Chip intern bereits mit 40 Bit rechnet.
Keines davon!
Das Hauptaugenmerk liegt auf dem sogenannten Anti-Aliasing (AA). Gefolgt von Motion Blur, Depth of Field, Soft Shadows und Reflexionen.
Anti-Aliasing
AA bis zu 4x bietet bereits die GeForce, dabei sinken die Frames aber massiv ab und es ist eher für 640*480 oder 800*600 geeignet. Hier setzt 3dfx an und bietet zusätzliche Transistoren auf, um auch noch bei 1024*768 spielbare Frameraten zu liefern. Gleichzeitig soll das 2x der Voodoo 4 optisch ansprechender seien als das Gegenstück von nVidia.
Wir alle kennen das leidige Thema gezackte, scharfe Kanten bei der Pixeloptik. Zusätzlich kann es bei weiter entfernten Objekten dazu kommen, das ganze Pixel verschwinden. Aus einem hohen Mast wird so schnell eine gestrichelte Linie, die irgendwie in der Luft schwebt.
Quelle: 3dfx
Da die Kanten technisch bedingt sind, brauchen wir also auch wieder Technik, um diese zu reduzieren. Eine massive Erhöhung der Auflösung auf z.B. UXGA mit 1600*1200 bringt eine Linderung. Ein Großteil der Monitore erreicht aber gerade einmal 1280*1024 und auch der RAMDAC dürfte immer mehr Probleme mit der Hertz Anzahl bekommen.
Hier kommt das AA ins Spiel, das die Karte intern mit höherer/doppelter Auflösung rechnen lässt, um Kanten dann „verschmiert“ erscheinen zu lassen. Im speziellen werden hier Farbwerte anders gemischt, um den Übergang zwischen zwei Linien weicher erscheinen zu lassen. Um ein reines Verschmieren, wie z.B. feuchte Tinte auf einem Blatt Papier handelt es sich dabei nicht, da das Gesamtbild da drunter leiden würde.
Quincunx Abtastmuster der GeForce Karten - Quelle: Wiki (Vierge Marie)
Die unterschiedlichen Farbwerte werden ermittelt, in dem man das Bild doppelt rendert und dann um weniger als einen Pixel verschiebt. Dies geschieht wie gesagt Offscreen, unbemerkt vom Benutzer aus.
3dfx nutzt hier das sogenannte Rotated Grid Super Sampling (RGSS), welches von der Qualität her zu den besten Verfahren auf dem Markt gehört. Nachteilig ist hier der erhöhte Rechenaufwand zu nennen.
Rotated Grid Super Sampling - Quelle: Wiki (Vierge Marie)
Ein weiterer Negativpunkt ist hier zu erwähnen, dass jeder VSA-100 Chip nur 2x beherrscht, es braucht also die Voodoo 5 5000/5500 für 4x und die Königin Voodoo 5 6000 für 8x.
Dafür kann Super Sampling auch bei Alpha Texturen problemlos angewandt werden, wohin gegen das Multi Sampling keine Auswirkung hat oder ein mehrmaliges Rendern der Alpha texturen erforderlich ist.
Durch das Drehen (Rotated) wird erreicht, dass der Aliasing Effekt bei Schrägen weniger auffällt.
Optisch gefiel mir persönlich das 2x der Voodoo 4 besser als das 2x der GeForce 2 Ti. Wobei die 3dfx Karte eher ein 1,4x * 1,4x hatte und die GeForce 2x oder 2x. Jeweils vertikal oder horizontal.
Motion Blur
Die Grafikkarten berechnen sich bewegende Objekte immer knack scharf, was nicht unserem Sehvermögen entspricht. Im Fernseher oder Kamera Bereich wird es dadurch erreicht, dass die Bewegung zu schnell und/oder die Auslösezeit zu niedrig ist. Deswegen wirken Filme mit 24 FPS auch anders als ein Ego-Shooter bei der selben Bildrate.
Hier gibt es mehrere Möglichkeiten, das zu realisieren.
Entweder man verschmiert das Objekt oder man rendert es mehrmals. Sofern man es mehrmals rendert, wird nur eine Version zu 100% undurchsichtig, während die anderen Versionen transparent sind. So entsteht ebenfalls die Illusion eines verwischen, ohne das Details verloren gehen.
Wie hoch der Rechenaufwand für die Umgebung ist, kann ich nicht einschätzen. Bei Figuren oder Fahrzeugen dürfte es sich stärker in Grenzen halten, während man bei Rennspielen einen wesentlich erhöhten Aufwand erhält, da hier die Umgebung zum Großteil oder Komplett einbezogen werden muss.
Eine weitere wichtige Sache ist das Depth of Field
Wir kennen es hauptsächlich von den Spiegelreflexkameras: das Objekt im Vordergrund ist angenehm scharf, während der Hintergrund verschwimmt. Das hat einerseits ein natürlicheres Aussehen, andererseits lenkt es den Blick vom Hauptmotiv weniger ab.
Auch hier rendert die Grafikkarte alles scharf, egal wie weit weg es vom Betrachter ist.
Legt man jetzt einen Weichzeichner drüber, entsteht für uns der Eindruck schon ganz gut. Da die GPU auch immer weiß, wie weit weg ein Objekt ist, lässt sich der Effekt wesentlich besser Steuern als z.B. bei den ToF Sensoren heutiger Smartphones. So könnte man auch ein stufenweises Weichzeichnen nutzen, wie es auch bei Kamera Objektiven auftritt.
Die letzten Punkte sind Soft Shadows und Reflectance Blur
Wie beim Anti Aliasing haben wir auch hier das Problem, das Kanten scharf sind, in diesem Fall die der Schatten. Bei diffusem Licht jedoch, werden diese in der Natur ausgefranster.
Um dies zu verwirklichen, kann man eine zweite Lichtquelle nutzen, die leicht versetzt wird.
Ähnliche Probleme verursachen matte Oberflächen (Buch, Tisch, Material, etc.) bei Reflexionen. Während man bei einem Spiegel einfach die Welt doppelt berechnet, aus zwei unterschiedlichen Sichtweisen, nutzt 3dfx für beide Techniken wieder Super Sampling, also ein Verschieben der Pixel im 2D Bereich um einen Pixel oder weniger.
Abschließende Worte
Diese 5 Techniken haben alles eines gemeinsam: sie laufen unter dem Oberbegriff Anti-Aliasing, da Aliasing grob gesagt bedeutet, dass zu wenig Daten vorliegen, um ein besseres Bild zu erhalten.
Bei reinem Anti-Aliasing erhöht der T-Buffer die Abtastung in der X und Y Koordinate. Motion Blur vervielfältigt sich schnell bewegende Objekte. Depth of Field nutzt mehr Fokus-Samples, um einen realistischen Kamera Look zu erzeugen.
Soft Shadows und Blur Effects basieren auf einem ähnlichen Prinzip und nutzen ebenfalls mehrere Samples.
Und so beschrieb 3dfx diese Technik dann auch kurz und knapp:
„Ein weiterer gemeinsamer Aspekt dieser neuen 3D-Rendering Funktionen ist, dass sie – mit Ausnahme des räumlichen Anti-Aliasing für die gesamte Scene – relativ subtil sind“
Wie arbeitet der T-Buffer aus dem entsprechenden 3dfx Whitepaper:
- Clear the Accumulation Buffer (A- or T-Buffer)
- Clear the back buffer and render the full scene in the back buffer
- Transfer the rendered scene to the A-Buffer, with weighting (this is known as the accumuluate step)
- Repeat steps 2 and 3 as many times needed. Each repetition combines a new version of the image with the image already in the A-Buffer, so the final image is created as a weighted average result of different images. It’s the combination of the multiple images that adds the effects.
- Transfer, with scaling, the A-Buffer to the back buffer, and flip (or swap) buffer contents. The result becomes the displayed image.
- Akkumulationspuffer löschen (A- oder T-Puffer)
- Löschen Sie den Hintergrundpuffer und rendern Sie die vollständige Szene im Hintergrundpuffer
- Übertragen Sie die gerenderte Szene mit Gewichtung in den A-Puffer (dies wird als Akkumulationsschritt bezeichnet).
- Wiederholen Sie die Schritte 2 und 3 so oft wie nötig. Jede Wiederholung kombiniert eine neue Version des Bildes mit dem Bild, das sich bereits im A-Puffer befindet, sodass das endgültige Bild als gewichtetes Durchschnittsergebnis verschiedener Bilder erstellt wird. Es ist die Kombination der mehreren Bilder, die die Effekte hinzufügt.
- Übertrage, mit Skalierung, den A-Puffer zu dem Hintergrundpuffer und kippe (oder vertausche) die Pufferinhalte. Das Ergebnis wird das endgültig angezeigte Bild.
Was man nicht unerwähnt lassen darf, ist die Tatsache, dass alle Effekte, bis auf AA, von der API unterstützt werden müssen. In OpenGL und Glide ist das definitiv kein Problem, doch bei Dx7 werden sich Microsoft und 3dfx nicht grün. Denn es steht nicht auf dem Plan, die T-Buffer Technik als Open Source zu bringen.
techn. Daten im Vergleich
Zuletzt bearbeitet: