Tesselation ist eine Technik, mit der Sie Grundelemente (Dreiecke, Linien, Punkte usw.) auf der Grafikkarte erzeugen können. Insbesondere können Sie die aktuelle Geometrie wiederholt in ein feineres Netz unterteilen.
Auf diese Weise können Sie ein relativ grobes Netz auf Ihre Grafikkarte laden, dynamisch mehr Scheitelpunkte und Dreiecke erzeugen und dann ein Netz auf dem Bildschirm anzeigen, das viel glatter aussieht.
Meistens wird diese Tesselation in jedem einzelnen Frame neu durchgeführt. Dies kann der Grund dafür sein, dass Ihre Framerate sinkt, sobald Sie dies aktivieren.
Die Tesselation erfolgt in mehreren Schritten und NACH dem Vertex-Shader.
Die Bedingungen für jede Stufe variieren je nach API. In DirectX sind dies der Hull-Shader, die Hardware-Tessellation und der Domain-Shader. In OpenGL werden sie Tessellation Control Shader, Tesselation Primitive Generation und Tessellation Evaluation Shader genannt.
Die erste und die letzte Stufe sind programmierbar, die eigentliche Tesselation erfolgt durch die Hardware in einer festen Funktionsstufe.
Im Shader Tesselation Control legen Sie die Art und Anzahl der Unterteilungen fest.
Dann teilt der Hardware-Tessellator die Geometrie nach dem Control-Shader auf.
Zuletzt wird der Tessellation Evaluation Shader für jeden neu erzeugten Vertex aufgerufen. In diesem Shader legen Sie den Typ des zu generierenden Grundelements sowie den Abstand der Scheitelpunkte und vieles mehr fest. Dieser Shader kann ebenso wie ein Vertex-Shader für alle Arten von Per-Vertex-Berechnungen verwendet werden. Es wird garantiert, dass es mindestens einmal für jeden generierten Vertex aufgerufen wird.
Wenn Sie die Grundelemente weiter bearbeiten möchten, können Sie einen Geometrie-Shader hinzufügen.