Usuwanie niewidocznych powierzchni
Usuwanie niewidocznych powierzchni – w grafice trójwymiarowej 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 zagadnienie 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 niewielki fragment sceny, a zatem widoczny jest niewielki odsetek wszystkich obiektów. Z tego też względu nie ma potrzeby, aby w ogóle przeznaczać czas i pamięć na przetwarzanie niewidocznych obiektów.
Poniżej opisanych jest kilka powszechnie znanych metod.
Viewing frustum culling
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.
Occlusion culling
Określanie, które obiekty (lub części obiektów) są zasłaniane przez inne obiekty znajdujące się bliżej 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 terenu) lub gdy scena zawiera bardzo dużo szczegółów (np. plany instalacji w fabrykach czy na statkach).
Backface culling
Odrzucanie tylnych ścian. 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 z oczywistych względów nie nadaje się do wyświetlania obiektów półprzezroczystych.
Inne metody
- bufor Z
- algorytm malarza
- algorytm Warnocka
- określanie widoczności z dokładnością pikselową metodą śledzenia promieni
- usuwanie tych obiektów, które po rasteryzacji są zbyt małe i praktycznie nic nie wnoszą do finalnego obrazu.
Zobacz też
- okienkowanie
- obcinanie
- bryła brzegowa
Media użyte na tej stronie
(c) Wojciech mula z polskiej Wikipedii, CC-BY-SA-3.0
Ilustracja do art. Usuwanie niewidocznych powierzchni
Rysunek wykonano w Inkscape.
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.