Wolna encyklopedia
Bufor szablonowy (ang. stencil buffer) - jeden z buforów, obok bufora Z i bufora ramki, stosowany w systemach wyświetlających grafikę 3D umożliwiający selektywnie wyświetlać wybrane piksele obrazu. Jest on obecnie implementowany sprzętowo w akceleratorach graficznych, zaś jego funkcjonalność udostępniają biblioteki programistyczne Direct3D oraz OpenGL.
Dzięki zastosowaniu bufora szablonowego możliwe jest uzyskiwanie różnych efektów graficznych, m.in. odbić w płaskich zwierciadłach, dynamicznych cieni, a także realizacja operacji boolowskich (CSG), czy określanie złożoności sceny trójwymiarowej.
Gdy bufor szablonowy jest włączony, wyświetlanie piksela obrazu determinuje dodatkowy test na odpowiadającej mu wartości bufora. Dostępne są następujące relacje:
- zawsze prawdziwy - zawartość bufora szablonowego nie jest brana pod uwagę;
- zawsze fałszywy - nic nie jest wyświetlane;
- porównania: równy, różny, mniejszy, większy, mniejszy lub równy, większy lub równy - piksel jest wyświetlany, jeśli dla określonej wartości referencyjnej (ustalanej przez programistę) i wartości w buforze relacja jest prawdziwa.
Zapisy do bufora są konfigurowalne:
- nie powodują zmian;
- powodują wyzerowanie wartości;
- powodują zanegowanie bitów;
- określona wartość (definiowana przez programistę) jest wpisywana do bufora;
- zapis powoduje zmniejszenie lub zwiększenie o 1 wartości w buforze (te operacje mogą być przeprowadzane albo z nasyceniem albo w arytmetyce modulo).
Dostępne są zwykle maski bitowe stosowane zarówno przy porównywaniu jak i zapisach, dzięki czemu możliwe jest traktowanie wartości w buforze jako zbioru niezależnych pól bitowych. Liczba bitów przeznaczona na elementy bufora różni się w zależności od implementacji, może wynosić 1, 4, 8 lub więcej bitów.