ASUS V8200 Deluxe |
3D-Texturen
3D-Texturen wurden als erstes von ATI mit ihrem Radeon im Endkonsumentenmarkt
eingeführt. Da sich 3D-Texturen nun auch im aktuellen DirectX 8.1 Standard
wiederfinden, sprang NVIDIA auf den Zug. Der GeForce beherscht 3D-Texturen
und richtiges Filtern, wie bei 2D-Texturen. Somit sind Mip-Maps und trilineares
Filtern in allen 3 Dimensionen möglich.
Mit 3D-Texturen werden einige neu Effekte möglich: Korrektes Anschneiden von Textureobjekten 3D-Nebel, welcher in der Dichte und Form variieren kann 3D-Lichkegel prozeduale Texturen, Explosionen oder Partikeleffekte
Zusätzlich kann der Texturespeicher auch genutzt werden, um Funktionswerte
von Funktionen z.B. 3. oder 4. Ordnung (jedoch mit einer Konstanten) abzulegen.
Als Beispiel soll hier etwas genauer auf BRDF (bi-directional reflectance distribution function) eingegangen werden. BRDF sind komplexe Beleuchtungsfunktionen, welche Lichtreflektionen beschreiben die sich abhängig vom Material, Lichteinfallwinkel und Betrachtungswinkel ändern. Diese komplexen Funktionen werden durch verschieden Methoden der Dekomposition(ND - normalized decomposition, SVD - singular value decomposition) und Parametrisierung in Funktionen niedrigerer Ordnung zerlegt und in einer oder mehren 2D Texturen gespeichert - per GPU wird dann mit den Texturen gerechnet. Mit den 3D-Texturen kann nun auf mehrender Texturen verzichtet werden. 3D-Koordinaten im kartesischen Koordinatensystem benötigen 3 Parameter, im spherischen Koordinatensystem lediglich 2 L beschreibt den Lichteinfallvektor, V den Betrachtungswinkel relativ zur Flächennormalen die komplexen BRDF's müssen nun in simplerer Funktionen "zerlegt" werden hier sehen wir ein Problem - bei der Rekonstruktion einer ND-Dekomposition entstehen Fehler, die nur durch mehrer Terme und eine andere Art der Dekomposition beseitigt werden lönnen mit der SVD-Dekomposition und mehrern Termen lassten sich gute Ergebnisse erzielen und genau hier kann die 3. Dimension von 3D-Texturen genutzt werden Hier noch ein paar Resultate, wobei zwischen echtem Raytracing und BRDF, welches jeweils 64 mal je Parameter gesampelt wurden, verglichen wird: die Oberflächeneigenschaften sind gut zu erkennen Leider haben 3D-Texturen auch einen Nachteil - ihr Speicherverbrauch. Eine 3D-Texture mit der Größe 256x256x256 (16777216 * 32 Bit / 8) belegt 64 MBytes. Somit benötigt man hier gewisse Texturekompressionsmethoden. Der GeForce 3 beherrscht hier verschiedene Methoden für die 4:1 Komprimierung, sowie eine Methode für die 8:1 Komprimierung. Damit kann man eine 64 MBytes 3D-Texture auf handliche 8 MBytes verkleinern. |