Tehnike pospeševanja upodabljanja v realnem času - PowerPoint PPT Presentation

jesse
slide1 n.
Skip this Video
Loading SlideShow in 5 Seconds..
Tehnike pospeševanja upodabljanja v realnem času PowerPoint Presentation
Download Presentation
Tehnike pospeševanja upodabljanja v realnem času

play fullscreen
1 / 74
Download Presentation
Tehnike pospeševanja upodabljanja v realnem času
145 Views
Download Presentation

Tehnike pospeševanja upodabljanja v realnem času

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Tehnike pospeševanja upodabljanja v realnem času

  2. Aparaturna grafična oprema je vsakih 6 mesecev 2 x hitrejša! No, potem bo kmalu dovolj hitra! Ne! Nikdar ne bomo zadovoljni Ločljivost zaslona: 2000x1000 Realizem: globalno osvetljevanje Geometrijska kompleksnost: ni zgornje meje! Motivacija

  3. Kako v realnem času upodobiti tako kompleksno pokrajino?

  4. Veliki modeli:Simulacija rastlinskega ekosistema • 16.7 milionov poligonov (na primer) Deussen et al: Realistic Modeling of Plant Ecosystems

  5. Pregled • Graf scene • Metode izločanja (culling techniques) • Nivoji podrobnosti (LODs) • Plakati (billboards) • Kombiniranje metod • Odkrivanje trkov

  6. notranji vozel= Graf scene • DAG – directed acyclic graph • Simply an n-ary tree without loops • Uporaba: detekcija trkov, hitrejše upodabljanje

  7. Vsebina grafa scene • Listi vsebujejo geometrijo • Vsak vozel vsebuje • Bounding Volume (BV) • kazalce na otroke • možnost transformacije • Primeri BV: krogle, kvadri • BV v vozlu vsebuje vso geometrijo svojega poddrevesa

  8. Primer grafa scene graf scene krogi=BV koren

  9. Move right, Rotate 45° Move up Transformi v grafu scene • V vsak notranji vozel damo transform • Daje možnost instanc in hierarhične animacije

  10. Knee Foot Xform Xform Xform Xform Hip Leg Primer: noga tekača Brez hierahije: ena transformacija C A B Hierarhija:3 transformacije 1 2 3

  11. Tehnike izločanja • “Izločenje" (culling)pomeni "izbiro iz skupine" • V grafičnem okolju: ne obdelujmo podatkov, ki ne prispevajo h končni sliki • "Skupina" (group)je celotna scena, izbira je podmnožica scene, ki je ne bomo upoštevali

  12. Izločanje: pregled • Izločanje zadnjih strani (Backface culling) • Hierarhično izločanje vidnega stožca (Hierarchical view-frustum culling) • Izločanje portalov (Portal culling) • Izločanje podrobnosti (Detail culling) • Izločanje zakritih teles (Occlusion culling)

  13. podrobnosti zakrita telesa Primeri izločanja Vidni stožec zadnje strani portal

  14. Izločanje zadnjih strani • Preprosta tehnika izločanja poligonov, ki si obrnjeni stran • Uporabljamo pri: • zaprtih ploskvah(na primer: krogla) • vedno, ko nočemo videti zadnjih strani (na primer stene v prostoru) • Dve metodi (screen space, eye space) • Kje se to splača? Rasterizer, pa tudi geometrija (kjer opravljamo teste)

  15. Izločanje zadnjih strani • Pogosto implementirano na nivoju API • OpenGL: glCullFace(GL_BACK); • In kako ugotovimo, katere strani so obrnjene nazaj? • Konsistentno moramo številčiti poligone 2 2 0 1 0 obrnjen naprej obrnjen nazaj 1

  16. Kako izločamo zadnje strani 1 2 back 2 eye 1 front 0 0 front back screen space eye space

  17. Izločanje zadnjih strani • Korak1: • Odstranimo vse poligone izven vidnega stožca • Korak 2: • Če je skalarni produkt vektorja gledanja in normale na ploskev > 0, je ploskev obrnjena h gledalcu. • Vse poligone, obrnjene stran, izločimo. • Korak 3: • Vidne strani narišemo v zaporedju, ki daje pravi izgled objektov. • Opomba: • Normala na ploskev = vektorski produkt dveh ko-planarnih robov. • Vektor gledanja poteka od točke normale do gledišča

  18. View-Frustum Culling • Vsako "naravno" skupino primitivov povežemo s preprostim volumnom (na primer: krogla, kvader) • Če je obsegajoči volumen (bounding volume, BV) izven vidnega stožca, je izven tega stožca tudi vsa njegova vsebina (je nevidna) • Za take BV in njihovo vsebino ne izvajamo nadaljne obdelave

  19. Hierarhično izločanje z vidnim stožcen koren Gledišče

  20. Test obsegajoče krogle –1 • Uporabimo gapredodstranjevanjem zadnjih ploskev in s tem izločimo objekte v celoti. • Ta test deluje le, če je predmet razdeljen v konveksna področja. V igrah, kjer imamo enotno (eno samo) mrežo, ne deluje. • Ideja je v tem, da tvorimo obsegajočo kroglo okrog posameznih objektov in transformiramo Twcsredišče vsake krogle ter pogledamo, ali je krogla v celoti izven vidnega stožca

  21. Test obsegajoče krogle – 2 • Če ni nobena od točk p1-p5 v vidnem stožcu, objekt ne more biti viden.Test za točko p(x,y,z) pravi, da je zunaj if ((z > far_z) || (z < near_z) || // z-os (fabs(x) < z)|| //x-z ravnina (fabs(y) < z)) //y-z ravnina { // tocka ni v vidnem polju }

  22. Test obsegajoče krogle – 3 • Opomba: če je le del obsegajoče krogle znotraj vidnega stožca, še ni zanesljivo, da je kakšen del objekta viden (razen, če je objekt krogla, ki povsem zapolni obsegajočo kroglo) • Glede na obliko objekta bi bilo morda bolje uporabiti obsegajoči kvader oziroma paralelopiped.

  23. Celice in portali • Cilj: sprehod skozi arhitektonske modele (stavbe, mesta, katakombe,..) • Pri teh modelih imamo naravno delitev na celice • Sobe, hodniki,alcoves, vdolbine v stenah • Transparentniportalipovezujejo celice • Vrata, vhodi, okna… • Opomba: celice vidijo druge celice le skozi portale

  24. Izločanje portalov Images courtesy of David P. Luebke and Chris Georges • Povprečno: izločenih 20-50% poligonov v pogledu • Pospešitev: lahko tudi 10 kratna

  25. Primer izločanja portalov • Pogled od zgoraj na poslopje • krogi so objekti, ki naj bi bili upodobljeni

  26. Algoritem izločanja portalov • Sceno razdelimo v celice s portali (tvorimo graf) • Za vsak okvir: • Lociramo celico gledalca in vzpostavimo 2D AABB za cel zaslon • * Upodobimo tekočo celico z “VF cull w.r.t. AABB” • Prečkamo (skozi portale) v najbližje celice • Presek AABB in AABB prečkanih portalov • Goto * Pomen AABB

  27. Tipi geometrije • Točke • Črte, žarki in daljice • Krogle, cilindri in stožci • Kvadri, - osno poravnani ali poljubno usmerjeni • AABB: Axis aligned bounding box • OBB: Oriented bounding box • k-dops – oblike, omejene z ravninami fiksnih usmeritev • konveksne, mnogolične mreže – vsako mrežo lahko trianguliramo Konkavne mreže lahko razdelimo v konveksne dele • Množica trikotnikov • Bolj splošne ukrivljene ploskve, ki pa niso pogosto uporabljane v igrah AABB OBB 8-dop

  28. Precenitev portalov • Za poenostavitev: dejanski portal Precenjen portal

  29. Celice in portali • Idea: • Cells form the basic unit of PVS • Create an adjacency graphof cells • Starting with cell containing eyepoint, traverse graph, rendering visible cells • A cell is only visible if it can be seen through a sequence of portals • So cell visibility reduces to testing portal sequences for a line of sight…

  30. Celice in portali A D E F B C G H A E B C D F G H

  31. Celice in portali A D E F B C G H A E B C D F G H

  32. Celice in portali A D E F B C G H A E B C D F G H

  33. Celice in portali A D E F B C G H A E B C D F G H

  34. Celice in portali A D E F B C G H A E B C D F G H

  35. Celice in portali A D E ? F B C G H A E B C D F G ? H

  36. Celice in portali A D E X F B C G H A E B C D F G X H

  37. A D E F B C G H Celice in portali • View-independentsolution: find all cells a particular cell could possibly see: C can only see A, D, E, and H A D E H

  38. A D E F B C G H Celice in portali • View-independentsolution: find all cells a particular cell could possiblysee: H will never see F A D E B C G

  39. Celice in portali • Questions: • How can we detect whether a given cell is visible from a given viewpoint? • How can we detect view-independent visibility between cells? • The key insight: • These problems reduce to eye-portal and portal-portal visibility

  40. Algoritem izločanja portalov • When to exit: • When the current AABB is empty • When we do not have enough time to render a cell (“far away” from the viewer) • Also: mark rendered objects • Which stages benefits? • Geometry, Rasterizer, and Bus • Source (for Performer): http://www.cs.virginia.edu/~luebke/

  41. Izločanje podrobnosti • Idea: objects whose projected BV occupy less than N pixels are culled • This is an approximative algorithm as the things you cull away may actually contribute to the final image • Advantage: trade-off quality/speed • Which stages benefits? • Geometry, Rasterizer, and Bus

  42. Primer izločanja podrobnosti • Ni veliko razlike, vendar 80-400% hitrejše • Uporabno pri premikanju Images courtesy of ABB Robotics Products, created by Ulf Assarsson Izločanje podrobnosti OFF Izločanje podrobnosti ON

  43. Projekcija • Projekcija se razpolovi, če je razdalja podvojena oko

  44. Projekcija • dot(d, (c-v)) is distance along d • p=nr/dot(d, (c-v)) is estimation of projected radius • pp2 is the area d (normalized view direction) (eye) v r c (near plane) n

  45. Izločanje zakritih predmetov • Main idea: Objects that lies completely “behind” another set of objects can be culled • Hard problem to solve efficiently

  46. Primer • Opomba: “Portal Culling” je algoritem za izločanje zakritih predmetov Končna slika

  47. Algoritem izločanja zakritih predmetov Use some kind of occlusion representation OR for each object g do: if( not Occluded(OR ,g)) render(g); update(OR ,g); end; end;

  48. Primer z algoritmom izločanja zakritih predmetov • Obdelujemo od spredaj proti ozadju • Vzdržujemo “horizont zakritosti” (zelen)