W ostatnich grach zauważyłem coś, co nazywa się Tessellation. Włączenie tej funkcji niszczy moją częstotliwość klatek.
Zauważyłem, że po włączeniu wygląda jak antyaliasing.
Czy ktoś może mi przekazać dodatkowe informacje na temat tego, co dokładnie robi GPU.
pixel-graphics
Anarach
źródło
źródło
Odpowiedzi:
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ę.
źródło
Aktywuje 3 etapy w przygotowaniu.
Pierwszym z nich jest moduł cieniujący kontrolujący teselację (moduł cieniowania kadłuba w D3D), który sprawdza zestaw wierzchołków, a następnie określa, jak należy go podzielić na osobne trójkąty.
Drugi to stały etap funkcji, który wygeneruje wymagane trójkąty.
Trzeci etap modułu cieniowania oceny teselacji (moduł cieniujący domeny w D3D), który jest uruchamiany na wygenerowany wierzchołek i umieści go we właściwym miejscu na podstawie współrzędnych barycentrycznych wygenerowanego wierzchołka.
Służy to poziomowi szczegółowości do generowania większej liczby trójkątów, gdy siatka jest bliżej aparatu.
źródło