Co to jest bufor wzornika?
W programowaniu grafiki komputerowej bufor wzornika to obszar pamięci, który można wyciągnąć i wykorzystać w odniesieniu do innych buforów graficznych w celu osiągnięcia różnych efektów lub maskowania obszarów sceny, aby nie były przetwarzane ani renderowane. Bufor matrycowy to bufor pikselowy podobny do czarno-białego obrazu, w którym każda lokalizacja w buforze może zawierać wartość, która najczęściej wynosi maksymalnie 1 bajt, ale może być tak mała jak 1 bit. Bufor pierwotnie miał działać jako maska prawdziwa lub fałszywa, podobnie jak szablon w świecie rzeczywistym, więc obszary sceny można było zasłonić lub zignorować, ustawiając wartości różnych obszarów bufora szablonów na wartość inną niż zero. Bufor ma wiele zastosowań poza prostym maskowaniem, w tym rysowanie objętości cienia, implementowanie aureoli wokół obiektów lub lokalizowanie obszarów, w których obiekty nakładają się na siebie. W wielu przypadkach bufor jest przechowywany w pamięci graficznej na karcie graficznej, dzięki czemu można szybko uzyskać do niego dostęp podczas renderowania.
Koncepcja bufora szablonów pierwotnie była sposobem na stworzenie dwuwymiarowej maski (2D), która mogłaby być zastosowana do trójwymiarowej sceny (3D), gdy wierzchołki poruszały się w potoku graficznym. Jeśli położenie wierzchołka 3D, po zrasteryzowaniu, odnosi się do obszaru bufora szablonu, który nie został ustawiony na zero, wówczas ten wierzchołek można zignorować, a resztę jego przetwarzania potokowego pominąć. Umożliwiło to programistom sposób renderowania tylko małych części sceny lub renderowania obrazu w nieregularnie ukształtowanej rzutni, takiej jak odbicie w małym lustrze w większej scenie, gdzie kształt lustra jest rysowany jako szablon w bufor, a następnie odbicie jest przeciągane przez ten kształt.
Problemy z pamięcią doprowadziły do tego, że pierwotna postać bufora szablonu była siatką wartości jednobitowych, w której każdy piksel w buforze mógł być tylko prawdziwy lub fałszywy. Wraz z rozwojem kart graficznych większość buforów stała się w stanie przechowywać pełną wartość bajtu w każdym miejscu piksela, umożliwiając programistom uzyskanie bardziej złożonych wartości w danym miejscu. Może to pozwolić na użycie bufora do wykrywania obszarów, w których obiekty nakładają się, co można zrobić poprzez zwiększenie wartości bufora w miejscu, jeśli obiekt zajmuje ten piksel na ekranie podczas rasteryzacji. Po tej operacji wartość każdej lokalizacji pikseli w buforze będzie równa liczbie obiektów przecinających ten piksel na ekranie.
Jednym z najpopularniejszych zastosowań bufora szablonów jest tworzenie cieni głośności. Można to zrobić najpierw renderując scenę przy bardzo słabym oświetleniu, aby wszystko wyglądało na zacienione. Następnie wykonuje się obliczenia w celu określenia położenia wszystkich powierzchni wielokąta w scenie, które są oświetlone przez źródło światła, i kształty te są przenoszone do bufora szablonu. Scena jest renderowana ponownie, tak jakby każdy obiekt był w pełni oświetlony i był mieszany przez kształty szablonów z sceną zaciemnioną, skutecznie tworząc obraz, który wydaje się zawierać obiekty z cieniami.