Baza Wiedzy Komires
Baza Wiedzy Komires
Baza Wiedzy Komires
Baza Wiedzy Komires
Baza Wiedzy Komires

Listy PVS


Listy PVS (ang. Potentially Visible Sets) są listami potencjalnie widocznych np.: sektorów, wielokątów, itd. Listy PVS możemy dodawać do dowolnych struktur np. drzew BSP, OCT itd. Listy PVS sektorów pozwalają szybko określać widoczne sektory sceny bez konieczności przechodzenia drzew BSP lub OCT. Wybrane metody generacji statycznych list PVS dla drzewa BSP 3D są przedstawione poniżej.

1. Rzucanie promieni z punktów sceny
W metodzie tej próbkujemy przestrzeń sceny z odpowiednim minimalnym krokiem w celu uzyskania zbioru punktów sceny. Następnie dla każdego z punktów sceny znajdujemy sektor drzewa BSP 3D. Następnie z każdego punktu sceny rzucamy promienie we wszystkich kierunkach w celu znalezienia najbliższych przecinanych ścian. Na koniec sprawdzamy, do jakich sektorów w drzewie BSP 3D należą znalezione ściany i dodajemy te sektory do sektorów punktów sceny.

2. Renderowanie z punktów sceny
W metodzie tej próbkujemy przestrzeń sceny z odpowiednim minimalnym krokiem w celu uzyskania zbioru punktów sceny. Następnie dla każdego z punktów sceny znajdujemy sektor drzewa BSP 3D. Następnie z każdego punktu sceny renderujemy scenę w podstawowych kierunkach. Do bufora ekranu zapisujemy numery sektorów, do których należą renderowane ściany. Na koniec dla każdego otrzymanego obrazu skanujemy bufor ekranu i dodajemy odczytane numery sektorów do sektorów punktów sceny.

Obie metody są wolne i powodują błędy w generacji list PVS. Błędy w metodzie pierwszej wynikają z liczby rzucanych promieni. Błędy w metodzie drugiej wynikają z wielkości ekranu, który renderujemy. Błędy te powodują znikanie fragmentów grafiki i są konsekwencją pomijania części sektorów w listach PVS. Następne błędy wynikają z pomijania małych sektorów dla zbyt dużego kroku próbkowania przestrzeni sceny. Błędy te prowadzą do znikania całej grafiki i są konsekwencją pomijania list PVS dla małych sektorów.

3. Testy widoczności z wierzchołków portali.
Listy PVS tworzymy dla drzewa BSP 3D z portalami. Algorytm tworzenia portali dla drzewa BSP 3D jest opisany w artykule Portale. Poniżej znajduje się przykładowa scena zapisana w drzewie BSP 3D z portalami. Scena złożona jest z pięciu sektorów drzewa BSP 3D (S1, S2, S3, S4, S5) zawierających wielokąty i portale. P4S1 jest portalem utworzonym na płaszczyźnie P4 drzewa BSP 3D dla sektora S1. W podobny sposób zostały opisane wszystkie portale.


Widoczne sektory tworzące listy PVS określamy patrząc na zewnątrz z wierzchołków portali każdego sektora. Każda lista PVS zostanie dowiązana do portala, dla którego została utworzona.

Dla P4S1 otrzymujemy następującą statyczną listę sektorów widocznych, PVS: {S3, S4, S5}.
Dla P4S2 otrzymujemy następującą statyczną listę sektorów widocznych, PVS: {S5, S4, S3}.
Dla P4S3 otrzymujemy następującą statyczną listę sektorów widocznych, PVS: {S1}.
Dla P11S3 otrzymujemy następującą statyczną listę sektorów widocznych, PVS: {S4, S5, S2}.
Dla P11S4 otrzymujemy następującą statyczną listę sektorów widocznych, PVS: {S3, S1}.
Dla P9S4 otrzymujemy następującą statyczną listę sektorów widocznych, PVS: {S5, S2}.
Dla P4S5 otrzymujemy następującą statyczną listę sektorów widocznych, PVS: {S2}.
Dla P9S5 otrzymujemy następującą statyczną listę sektorów widocznych, PVS: {S4, S3, S1}.

Po dodaniu do wszystkich sektorów drzewa BSP 3D portali z listami PVS otrzymujemy drzewo BSP 3D + Portale + listy PVS.

Autor: Mirosław Kozioł, Komires Sp. z o.o.
Załączniki
Nie ma załączników do tego artykułu.
Pokrewne artykuły RSS Feed
MENU