Usuwanie niewidocznych powierzchni

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj

Usuwanie niewidocznych powierzchni to w komputerowej grafice 3D jeden z pierwszych etapów poprzedzających wyświetlanie obrazów, w którym określa się, które z obiektów umieszczonych na scenie są w danym rzucie widoczne (w całości lub tylko częściowo).

Jest to bardzo ważne ze względu na efektywność generowania obrazów - można wyobrazić sobie, że na scenie umieszczone są setki tysięcy, czy nawet dziesiątki milionów obiektów, ale przeważnie obserwowany jest tylko fragment sceny, a zatem widoczny jest niewielki odsetek całości. Dlatego też nie ma potrzeby, aby w ogóle przeznaczać czas i pamięć na przetwarzanie niewidocznych obiektów.

Poniżej wymieniono kilka powszechnie znanych metod.

Viewing frustum culling[edytuj | edytuj kod]

Odrzucanie obiektów znajdujących się poza bryłą widzenia - model wirtualnej kamery definiuje bryłę widzenia (najczęściej jest to ostrosłup ścięty o podstawie prostokątnej lub prostopadłościan), w którego objętości znajdują się obiekty widoczne w danym rzucie. Aby przyspieszyć proces kwalifikowania obiektów organizuje się scenę w hierarchiczny sposób, "zamykając" całość w drzewie ósemkowym, BSP, kd itp.

Ta metoda zwykle służy do odrzucenia obiektów, które z pewnością nie są widoczne - jest pierwszym etapem dla innych metod.

1) bryła widzenia (view frustum), 2) częściowo widoczny obiekt, 3) niewidoczny obiekt, 4) całkowicie widoczny obiekt

Occlusion culling[edytuj | edytuj kod]

Określanie, które obiekty (lub części obiektów) są zasłaniane przez inne obiekty, bliższe obserwatora. Jest to metoda dość skomplikowana, ponieważ wraz z przemieszczaniem obserwatora, cały czas zmieniają się zależności przesłaniania obiektów. Occlusion culling doskonale sprawdza się w sytuacjach gdy obserwuje się duże fragmenty sceny (np. wizualizacja terenów) lub gdy scena zawiera bardzo dużo szczegółów (np. plany instalacji w fabrykach, na statkach)

Obiekty niebieskie to jedyne widoczne (jeden w całości, jeden częściowo) na scenie - obiekty znajdujące się za nimi nie są widoczne i nie muszą być rysowane. Na szaro zaznaczono obszary zasłonięte przez obiekty widoczne.

Backface culling - odrzucanie tylnych ścian[edytuj | edytuj kod]

Gdy obiekty na scenie zbudowane są z wielokątów oraz określi się, że "przód" wielokąta znajduje się na zewnątrz bryły, natomiast "tył" od wewnątrz (kierunek wyznacza normalna wielokąta), wówczas nie ma potrzeby wyświetlania powierzchni skierowanych "tyłem" do obserwatora. Metoda jest bardzo prosta i szybka, pozwala odrzucić zwykle dużą część wielokątów, nie daje jednak w ogólnym przypadku gwarancji, że rzeczywiście wszystkie niewidoczne wielokąty nie zostaną wyświetlone; jedynie dla brył wypukłych metoda ma pełną skuteczność.

Odrzucanie tylnych ścian jest odpowiedzialne za częsty efekt w grach komputerowych, kiedy przypadkiem kamera znajdzie się wewnątrz jakiegoś obiektu, zamiast widoku jego wnętrza, obiekt całkiem znika (wszystkie widoczne wielokąty znajdują się z tyłu).

Ta metoda niekoniecznie nadaje się do wyświetlania obiektów półprzezroczystych.

Inne metody[edytuj | edytuj kod]

Zobacz też[edytuj | edytuj kod]