ALGORITMI ZA UKLANJANJE POLIGONA

Vedran Vukelić

  • Uvod
  • Struktura scene
  • Algoritmi za uklanjanje poligona
  • Implementacija
  • Rezultati
  • Literatura
  • Datoteke
 

Rezultati

Za mjerenje rezultata optimizacije sam složio virtualnu scenu u vlastitom editoru. Neke objekte sam oblikovao, a neke sam učitao iz .obj formata i uvrstio ih u scenu. Scena se sastoji od 145270 poligona. Za algoritam odbacivanja poligona po projekcijskom volumenu je vrlo bitna struktura tj. graf scene. Nastojao sam grupirati dijelove scene imajući na umu logičku i prostornu organizaciju. Na slici 10 se vidi cijela scena, bez tekstura i sa iscrtanim obujmicama svih čvorova grafa scene.

 

cijelascena

Slika 6. Pogled na cijelu scenu sa obujmicama.

 

 

noalg

Slika 7. Primjer pogleda u scenu.

 

Algoritam
Broj poligona poslanih na iscrtavanje
FPS
Bez algoritma
145270
173
Odbacivanje stražnjih poligona
145270
206
Odbacivanje po projekcijskom volumenu
31549
240
Odbacivanje stražnjih poligona + odbacivanje po projekcijskom volumenu
31549
304

Tablica 1. Tablica uz sliku 7.

 

noalg

Slika 8. Primjer pogleda u scenu.

 

Algoritam
Broj poligona poslanih na iscrtavanje
FPS
Bez algoritma
145270
74
Odbacivanje stražnjih poligona
145270
114
Odbacivanje po projekcijskom volumenu
118848
65
Odbacivanje stražnjih poligona + odbacivanje po projekcijskom volumenu
118848
105

Tablica 2. Tablica uz sliku 8.

 

Primjer na slici 7 je primjer pogleda u scenu kod kojeg algoritam za odbacivanje poligona daje ubrzanje iscrtavanja, a na slici 8 dolazi do usporavanja iscrtavanja jer je gotovo čitava scena vidljiva i algoritam nam je nepotreban..

 

chcpp

Slika 9. Primjer pogleda u scenu.

 

Algoritam
Broj poligona poslanih na iscrtavanje
FPS
Odbacivanje po projekcijskom volumenu
123891
188
“Stani i čekaj“
17806
171
CHC++
17806
243

Tablica 3. Tablica uz sliku 9.

 

pogled

Slika 10. Pogled u scenu.

 

Algoritam
Broj poligona poslanih na iscrtavanje
FPS
Odbacivanje po projekcijskom volumenu
71942
220
“Stani i čekaj“
71942
102
CHC++
71942
212

Tablica 4. Tablica uz sliku 10.

 

Na slici 9 stoji najbolji pogled u scenu kada govorimo o algoritmima za odbacivanje zaklonjenih poligona. Gotovo čitava scena je zaklonjena i to se vidi na rezultatima. Kod “stani i čekaj“ dobivamo pad za 15-ak FPS-a unatoč puno manjem broju poslanih poligona. Dakle vrijeme koje čekamo na odgovor upita o zaklanjanju je ipak preveliko da bi dobili ikakvo ubrzanje.

Na slici 10 vidimo da najbolje performanse nudi algoritam za odbacivanje po projekcijskom volumenu, no tek nešto lošiji je CHC++. U CHC++ algoritmu svi vidljivi čvorovi se ispituju svaki deseti trenutak prikaza s time da se ne provjeravaju svi u istom trenutku prikaza. Za to je odgovoran slučajni odabir broja trenutka prikaza u kojem će se desiti prvi upit. Tako da se upiti raspodijele po različitim trenutcima prikaza i time ublaže trošak algoritma. Apsolutno najgore rezultate nudi naivna “stani i čekaj“ metoda. U svakom trenutku prikaza se iscrtavaju obujmice od svih vidljivh čvorova (ali ne na ekran), postavljaju se upiti, čekaju se odgovori na te upite i iscrtava se geometrija svih vidljivih čvorova.

 

graf

Graf 1. Primjer prolaska kroz scenu s izmjerenim performansama.

 

Na početku grafa 1 vidimo dio gdje se CHC++ i “stani i čekaj“ algoritam odvajaju i nude puno bolje rezultate nego odbacivanje po projekcijskom volumenu. To je dio kad sam s kamerom ušao u kućicu u sceni i gotovo cijela scena je bila zaklonjena. U tom slučaju je i algoritam “stani i čekaj“ dosta dobar, malo lošiji od CHC++. To je zato što postoji samo jedan vidljiv čvor, a svi ostali se trebaju ispitati i treba pričekati njihove rezultate. Nakon toga sam s kamerom izašao iz kućice što se i očituje na grafu. CHC++ tu bilježi nagli pad FPS-a, no puno manji od naivne metode. To je otprilike onaj pogled koji sam objasnio na slici 16. Vidimo da je CHC++ lošiji od običnog odbacivanja po projekcijskom volumenu i taj pad iznosi oko 20-30 FPS-a. Do kraja prolaska su performanse svih algoritama otprilike iste jer sam krenuo prema najvećem objektu u sceni i samo je on bio vidljiv. Na samom kraju dolazim do stražnje strane modela hotela i okrećem kameru prema sceni. Vidi se da je tu CHC++ nešto bolji od ostala dva algoritma.

 

 

Website template by Arcsin