Często czytam słowo wzornika i nie mam pojęcia, jaki jest jego prawdziwy cel w grafice komputerowej.
Widząc czarno-białe zdjęcie na wikipedii, wciąż mam z tym problem.
Dlaczego używamy szablonu lub bufora szablonów i jaka jest różnica w przypadku bufora Z? Po co używać tego słowa, które wydaje się mieć jakieś znaczenie w projektowaniu graficznym?
Odpowiedzi:
W swoim pierwotnym wcieleniu bufor wzornika był buforem ramki o rozmiarze jednego bitu na piksel (tj. Czarny lub biały, ale bez szarości). Możesz renderować to, co chcesz, jak każdy inny bufor ramki. Następnie możesz użyć zawartości tego bufora do „wzorowania” lub maskowania podczas rysowania w swoim zwykłym buforze.
Przykład: załóżmy, że tworzysz grę samochodową. Chcesz mieć małe lusterko wsteczne na ekranie, które pokazuje, co jest za samochodem. Musisz wyrenderować widok skierowany za samochód, ale chcesz to wyrenderować tylko w małym zaokrąglonym prostokącie lusterka wstecznego. Typowe rozwiązanie to:
Szablon zamaskuje go tak, abyś rysował tylko w kształcie lustra.
Teraz, gdy rurociągi renderujące są znacznie bardziej elastyczne i programowalne, bufory szablonów są używane jako zwykły 1-bitowy bufor ramki, dzięki któremu możesz robić, co chcesz. Cienie są częstym przypadkiem użycia.
źródło
Oprócz funkcjonalnego wykorzystania buforów szablonów, które ludzie już omawiali, bufory szablonów można również wykorzystać do optymalizacji.
Ze względu na pozycję testu szablonu w potoku graficznym (który jest przed cieniowaniem pikseli), można użyć testu szablonu, aby zabić piksele, które wykonują intensywne cieniowanie, gdy nie są potrzebne. Często można to zrobić z grubszą ziarnistością niż pojedynczy piksel, np. kafelek pikseli, więc prace mogą być często przerywane również podczas zgrubnych etapów rasteryzacji.
źródło
To tylko bufor kontrolujący, które piksele można modyfikować podczas renderowania wielokątów. Dla każdego piksela istnieje odpowiednia wartość szablonu, a piksele można warunkowo modyfikować / ignorować w zależności od tych wartości
W najprostszym przypadku można go używać jak szablonu fizycznego - maski, która przepuszcza niektóre piksele i powstrzymuje modyfikację innych pikseli.
Jest bardzo podobny w zachowaniu do bufora Z - podobnie jak testowanie głębokości, testowanie szablonem jest testem prawda / fałsz, a istnieją podobne ustawienia kontrolujące test szablonu (pozytywny, jeśli większy / mniejszy / równy). Ale zamiast zapisywać na nim głębokość, zwykle będą miały zapisane wcześniej zdefiniowane wartości lub będą zwiększane / zmniejszane po narysowaniu pikseli, tak jak jest to stosowane w algorytmach matrycowych cieni.
źródło