Geometry-Shader

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

Ein Geometry-Shader ist ein mögliches Element der Grafikpipeline, die zur Erzeugung einer dreidimensionalen Computergrafik in einer Grafik-Engine benutzt wird. 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 keinen 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 und in OpenGL 4.0 der Tessellation-Shader.

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 ab Windows Vista angebotene Schnittstelle Direct3D 10 oder höher oder über OpenGL 3.2. 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).

Siehe auch[Bearbeiten | Quelltext bearbeiten]

Literatur[Bearbeiten | Quelltext bearbeiten]

  • DirectX Software Development Kit Documentation

Weblinks[Bearbeiten | Quelltext bearbeiten]