Bufor Z

Z Wikipedii, wolnej encyklopedii
Przejdź do nawigacji Przejdź do wyszukiwania
Scena trójwymiarowa (góra), zawartość bufora Z (dół)

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

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 metody:

  • łatwa do realizacji sprzętowej, obecnie powszechnie stosowana przez producentów kart graficznych;
  • nieprzezroczyste obiekty trójwymiarowe mogą być rasteryzowane w dowolnej kolejności.

Wady:

  • 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.