Tesselacja to technika umożliwiająca generowanie prymitywów (trójkątów, linii, punktów itp.) Na karcie graficznej. W szczególności umożliwia wielokrotne dzielenie bieżącej geometrii na drobniejszą siatkę.
Umożliwia to ładowanie stosunkowo grubej siatki na kartę graficzną, dynamiczne generowanie większej liczby wierzchołków i trójkątów, a następnie wyświetlanie siatki na ekranie, która wygląda na znacznie gładszą.
W większości przypadków teselacja jest wykonywana na nowo w każdej klatce i może to być przyczyną spadku szybkości klatek po włączeniu tej opcji.
Tesselacja odbywa się w kilku etapach i PO ZADANIU wierzchołków.
Warunki każdego etapu różnią się w zależności od interfejsu API. W DirectX jest to Hull Shader, Hardware Tessellation i Domain Shader. W OpenGL są one nazywane modułem cieniowania kontroli Tesselacji, generacją pierwotną Tesselacji i modułem oceny Tesselacji.
Pierwszy i ostatni etap jest programowalny, faktyczna teselacja jest wykonywana przez sprzęt w stałym etapie funkcji.
W module cieniującym Tesselation Control ustawiasz typ i liczbę podziałów.
Następnie sprzętowy tessellator dzieli geometrię zgodnie z Control Shaderem.
Wreszcie moduł cieniujący oceny Tesselacji jest wywoływany dla każdego nowo wygenerowanego wierzchołka. W tym module cieniującym ustawiasz rodzaj prymitywu, który chcesz wygenerować, a także odstępy między wierzchołkami i wiele innych rzeczy. Ten moduł cieniujący może być również używany do wykonywania wszelkiego rodzaju obliczeń na wierzchołek, podobnie jak moduł cieniujący wierzchołek. Gwarantuje się, że zostanie wywołany co najmniej raz dla każdego wygenerowanego wierzchołka.
Jeśli chcesz wykonać dalsze prace nad prymitywami, możesz dodać moduł cieniujący geometrię.