Bufor Z, bufor głębokości, bufor głębi (ang. Z-buffer, depth buffer) – struktura danych wykorzystywana w systemach generujących i wyświetlających obrazy trójwymiarowe, przechowująca współrzędną Z, czyli głębokość czy odległość od obserwatora, dla każdego piksela obrazu.

Prosta scena trójwymiarowa (góra), reprezentacja graficzna zawartości bufora Z dla tej sceny(dół)

Opis metody

edytuj

Modyfikacja pojedynczego piksela przebiega według następującego algorytmu: jeśli współrzędna Z danego piksela jest mniejsza od współrzędnej Z zapisanej w buforze, wtedy piksel ten znajduje się bliżej obserwatora, czyli można go zmodyfikować i uaktualnić wpis w buforze Z. Dzięki temu uzyskuje się poprawny obraz, tzn. taki, w którym obiekty trójwymiarowe są prezentowane zgodnie z ich wzajemnymi relacjami przesłaniania.

 
Przykład tworzenia obrazu: najpierw rysowany jest trójkąt szary, a następnie żółty. Na ilustracjach po prawej podano wartości współrzędnej Z przy rysowaniu poszczególnych trójkątów

Zalety

edytuj
  • łatwa do realizacji sprzętowej, obecnie powszechnie stosowana przez producentów kart graficznych;
  • nieprzezroczyste obiekty trójwymiarowe mogą być rasteryzowane w dowolnej kolejności.
  • potrzeba dodatkowej pamięci;
  • liczba bitów przeznaczona na zapisanie współrzędnej Z determinuje dokładność; ze względu na niewystarczającą precyzję mogą występować błędy w wyświetlaniu wielokątów leżących na jednej płaszczyźnie (ang. z fighting);
  • algorytmy rasteryzujące muszą dodatkowo wyznaczać współrzędną Z;
  • zawsze muszą zostać przejrzane wszystkie piksele, które dany obiekt pokrywa na obrazie;
  • dopiero po przetworzeniu wszystkich nieprzezroczystych obiektów mogą zostać narysowane obiekty przezroczyste, ponadto muszą być wyświetlane w kolejności od najdalszego do najbliższego.

Zobacz też

edytuj