Bufor Z


Bufor Z w encyklopedii

Z Wikipedii, wolnej encyklopedii Przejdź do nawigacji Przejdź do wyszukiwania Prosta scena trójwymiarowa (góra), reprezentacja graficzna zawartości bufora Z dla tej sceny(dół)

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.

Spis treści

Opis metody | edytuj kod

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 kod

  • ł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 | edytuj kod

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

Na podstawie artykułu: "Bufor Z" pochodzącego z Wikipedii
OryginałEdytujHistoria i autorzy