Bufor Z.

W dziedzinie grafiki komputerowej The Z buforu lub buforu głębokość jest metoda stosowana w wyświetlania scen 3D. Z-Buffer pozwala poradzić sobie z problemem widoczności polegającym na określeniu, które elementy sceny mają zostać wyrenderowane, które są przez inne ukryte oraz w jakiej kolejności należy wyświetlić prymitywy.

Opis

Jest używany głównie do sprzętowego przyspieszania 3D, ale jest również używany w wielu programowych silnikach 3D .
Przez algorytm malarza jest kolejnym rozwiązaniem częściowo rozwiązać problem widoczności.

Kiedy obiekt jest rysowany przez kartę graficzną 3D, głębia piksela (współrzędna z) jest przechowywana w buforze (w języku angielskim „buffer”, gdzie Z-buffer ). Bufor ten jest zwykle dwuwymiarową tablicą (X i Y), gdzie każdy element jest pikselem na ekranie. Jeśli inny element sceny ma być wyświetlany w tych samych współrzędnych (X, Y), mapa porównuje dwie głębokości (Z) i wyświetla tylko piksel najbliżej kamery. Wartość Z tego piksela jest następnie umieszczana w buforze głębi, zastępując w ten sposób stary. Wreszcie narysowany obraz odtwarza zwykłe i logiczne postrzeganie głębi, najbliższy obiekt ukrywa najdalej.

Ziarnistość bufora głębi odgrywa ważną rolę w jakości sceny. Bufor z 16-bitowymi wartościami zakodowanymi może generować artefakty graficzne (zwane walką Z, walką z buforem Z), gdy dwa obiekty są bardzo blisko siebie (możliwe jest tylko 65536 różnych głębokości). 32-bitowy bufor Z działa bardziej poprawnie. 8-bitowe bufory Z są rzadko używane ze względu na ich niską precyzję.

Zwykle precyzja bufora Z nie jest liniowa w zależności od punktu, bliskiego lub dalekiego. Bliskie wartości są dokładniejsze (dzięki czemu można dokładniej wyświetlać bliskie obiekty) niż odległe wartości (mniej ważne wizualnie). Zwykle jest to zamierzone zachowanie, ale może spowodować pojawienie się artefaktów wizualnych z tyłu sceny. Odmiana techniki bufora Z rozwiązuje ten problem, nazywana jest buforem W.

Rozpoczynając wyświetlanie nowej sceny, bufor Z powinien zostać zainicjowany z predefiniowaną wartością, która reprezentuje maksymalną głębokość, zwykle zero.

Na kartach graficznych z lat 1999-2005 zarządzanie buforem Z zużywa znaczną ilość przepustowości pamięci. Aby zmniejszyć ten wpływ, zastosowano kilka metod, takich jak kompresja bezstratna (kompresja i dekompresja przez procesor jest tańsza niż przepustowość grafiki) lub ultraszybkie wymazywanie przez sam sprzęt, co sprawia, że ​​technika „raz dodatnia, raz ujemna ”(co pozwoliło uniknąć wymazywania poprzez zarządzanie podpisanymi numerami).

Matematyka

Zakres wartości głębi w rysowanej przestrzeni kamery jest często definiowany między (wartość minimalna) a (wartość daleka). Po przekształceniu odwzorowania nową wartość lub określa się wzorem:

Gdzie jest nowa wartość i jest czasami określana jako lub .

Wynikowe wartości są znormalizowane między -1 a 1, gdzie płaszczyzna to -1, a płaszczyzna to 1. Wartości spoza tego zakresu nie mieszczą się w objętości widzenia i nie należy ich rysować.

Aby zaimplementować bufor Z, wartości są interpolowane liniowo na powierzchni ekranu między wartościami punktów bieżącego wielokąta .

Inne zastosowania

Z-Buffer może być używany do innych efektów graficznych, takich jak efekty rozmycia, których intensywność zmienia się wraz z głębią (aby symulować głębię ostrości). Znajomość głębi każdego piksela umożliwia również wdrożenie efektu mgły z maksymalną gęstością, gdy piksel jest daleko.

Uwagi i odniesienia

Powiązane artykuły

<img src="https://fr.wikipedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" title="" width="1" height="1" style="border: none; position: absolute;">