Przycinanie obszaru widocznego w grach 3D Autor: Mirosław Kozioł

Przycinanie wielokątów jest niezbędne przed rzutowaniem ich na ekranie. Jeżeli współrzędne ekranowe uzyskujemy poprzez skalowanie x i y przez z to dla z<0 nastąpi ich odbicie oraz zmiana kierunku przyrostu:

Wynika to ze wzorów:

 

                    x na ekranie = x / z

                    y na ekranie = y / z

 

Aby tego uniknąć stosuje się dwie metody:

Pierwsza metoda polega na usuwaniu wielokątów których chociaż jeden wierzchołek ma ujemną współrzędną z.

Metoda sprawdza się gdy w lokacji mamy małe wielokąty i ich usuwanie nie jest widoczne na ekranie.

Gdy lokacja składa się z dużych wielokątów to pozostaje nam albo pocięcie ich na małe wielokąty albo metoda druga

 

Druga metoda polega na przycinaniu wielokątów których chociaż jeden wierzchołek ma ujemną współrzędną z. (najprostsza wersja to przycinanie trójkątów)

Metody przycinania opisywane w licznych książkach o grafice 3D przeważnie są skomplikowane. Można jednak podejść do tego problemu stosując pewne założenie co redukuje problem do dzielenia odcinków w przestrzeni 2D.

 

Założenie to jest następujące:

Obserwator znajduje się zawsze w stałym punkcie np. (0,0,0). Płaszczyzna tnąca jest też stała np. (0,0,zt). Założenie jest zawsze prawdziwe ponieważ poruszając obserwatorem w rzeczywistości poruszamy sceną o kąty obrotu obserwatora i jego przesunięcie.

 

Przy takich założeniach cięcie wielokątów sprowadza się do cięcia współrzędnych x i y wielokątów w przestrzeni 2D czyli dzielenia odcinków.

  

 

 

 

 

Wszelkie prawa do serwisu posiada Komires Sp. z o. o.