- Geometry-Shader
-
Eine Geometry-Shader-Hardware ist ein relativ neuartiger Baustein in der 3D-Computergrafik. Als Shader in der klassischen Grafikpipeline wird der Geometry Shader nach dem Vertex-Shader aufgerufen. Er kann neue primitive Geometrien aus bereits vorhandenen Primitiven (Punkte, Linien, Dreiecke) erzeugen und diese erneut in die Grafikpipeline einfügen. Da das Anlegen neuer Knoten im eigentlichen Sinne kein Teil des Renderings (Transformation, Beleuchtung, Texturierung) darstellt, nimmt der Geometry-Shader eine Sonderrolle ein.
Typische Anwendungen sind zum Beispiel die Erzeugung von Schattenvolumen, Verteilung der Geometrie auf die Seiten einer Cube-Map oder die Erzeugung von Fell- oder Haargeometrie. Obwohl der Geometry Shader innerhalb einer Obergrenze beliebig Geometrie erzeugen kann, wird nicht empfohlen, große Mengen davon durch ihn zu erzeugen. In Direct3D 11 wurde dafür die Tesselationseinheit eingeführt.
Geometry Shading wird durch nVidias Grafikprozessoren der GeForce 8 Serie und ATIs Grafikprozessoren der Radeon HD2000 Serie unterstützt. Softwareseitig erfolgt die Programmierung von Geometry-Shadern entweder über die von Windows Vista angebotene Schnittstelle Direct3D 10 (vgl. DirectX) oder über OpenGL-Erweiterungen, die von den neueren nVidia-Treibern angeboten werden. Sie ermöglichen Effekte wie Point Sprite Expansion (Ersetzen von einzelnen Punkten/Partikeln durch Volumendaten) oder auch Shadow Volume Generation (volumenhaft ausgebildeter Schatten ersetzt "flache" Schattenbilder).
Literatur
- DirectX Software Development Kit Documentation
Weblinks
- MSDN: DirectX Developer Center, Homepage zu DirectX
- MSDN: Geometry-Shader Object (DirectX HLSL), API-Definition aus DirectX (englisch)
- NVIDIA: EXT_geometry_shader4, API-Definition zur gleichnamigen OpenGL-Extension (englisch)
Wikimedia Foundation.