Transform and Lighting

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Mit Transform and Lighting (oder kurz T&L, englisch für „Umformung und Ausleuchtung“) werden zwei Schritte der Grafikpipeline in der 3D-Computergrafik bezeichnet. Transform and Lighting als eigener Ausdruck wird hauptsächlich im Zusammenhang mit Grafikkarten verwendet, die ebendiese Schritte selbst ausführen können und so den Hauptprozessor entlasten.

„Transform“ bezeichnet die Transformation der Weltkoordinaten eines Vertex in zweidimensionale Bildschirmkoordinaten mittels einer Transformationsmatrix. Da sich sowohl die Weltkoordinaten (Objekt bewegt sich in der virtuellen Welt) als auch die Transformationsmatrix („Kamera“ bewegt sich oder ändert ihren Zoom) ständig ändern können, muss die Transformation für jedes Bild aufs Neue durchgeführt werden.

„Lighting“ bezeichnet die Berechnung der Beleuchtung eines Bildpunktes, also ihrer Helligkeit und Farbe, nach dem Beleuchtungsmodell. Bei einigen einfachen Modellen wie dem bedeutenden Phong-Modell ist hierzu eine Berechnung des Winkels zwischen der Oberflächennormalen und der Richtung der Lichtquelle notwendig und maßgeblich. Dieser Winkel muss ebenfalls für jedes Bild berechnet werden, da sich die Position des Objektes relativ zur Lichtquelle ändern kann.

Beide Operationen, die für jedes Vertex durchgeführt werden müssen, sind einfache Vektor- und Matrizenoperationen. Sie lassen sich gut in Hardware implementieren, da hier keine Flexibilität gefordert ist. Da die Berechnungen außerdem unabhängig voneinander sind, lassen sie sich nahezu beliebig hochgradig parallelisieren. Eine solche Realisierung in Hardware übertrifft die Geschwindigkeit einer Software-Implementation um ein Vielfaches.

Zuerst wurde die Funktionalität in den Grafikchip Savage 2000 von S3 Inc. und die GeForce 256 von NVIDIA implementiert und von den Herstellern „Transform and Lighting (T&L) engine“ genannt, wovon Transform and Lighting als eigenständiger Begriff herrührt. Dieses Feature wird heute von allen modernen Chips unterstützt, seit Version 7.0 ist es fester Bestandteil des DirectX-Kompatibilitätskatalogs. Bei Grafikkarten ohne T&L-Einheit wurden die Schritte entweder vom Programm selbst oder vom 3D-Treiber durchgeführt und in beiden Fällen von der CPU berechnet.