Tessellation-Shader
Als Tessellation-Shader (vom englischen tessellation für „Mosaik“) wird ein Teil der Grafikpipeline in der 3D-Computergrafik bezeichnet. Technisch besteht er aus zwei getrennten Shadern und einem Fixed-Function Tessellator. Der Aufruf der Tessellation-Shader erfolgt nach dem Vertex-Shader und vor dem Geometry-Shader. Aufgabe der Tessellation-Shader ist die Zerlegung von Flächen, sogenannten Patches, in kleinere Flächen (üblicherweise Drei- oder Vierecke).
Funktion
[Bearbeiten | Quelltext bearbeiten]Zunächst wird der Tessellation-Control Shader aufgerufen, dieser arbeitet auf sogenannten „Patches“. Ein Patch besteht aus einer Menge von Punkten (Vertices) sowie weiteren dem Patch zugeordneten Daten, die u. a. die Feinheit der Tesellierung (Unterteilung) bestimmen. Der Fixed-Function Tessellator zerlegt nun jeden Input-Patch in (i. d. R. mehrere) Output-Patches, üblicherweise in Drei- oder Vierecke. Der zweite Shader, der Tessellation-Evaluation Shader kann nun die neu erzeugten Vertices verschieben. In Direct3D werden diese beiden Shader Hull-Shader bzw. Domain-Shader genannt.
Unterstützung
[Bearbeiten | Quelltext bearbeiten]OpenGL unterstützt Tessellation-Shader ab Version 4.0. Programme für den Shader können in der OpenGL Shading Language (GLSL) geschrieben werden. Direct3D unterstützt Tessellation-Shader ab Version 10.
Vulkan (API) unterstützt Tessellation-Shader ab Version 1.0.