1 / 74

Tehnike pospeševanja upodabljanja v realnem času

Tehnike pospeševanja upodabljanja v realnem času. Aparaturna grafična oprema je vsakih 6 mesecev 2 x hitrejša ! No, potem bo kmalu dovolj hitra ! N e ! Nikdar ne bomo zadovoljni Ločljivost zaslona : 2000x1000 Reali zem : globalno osvetljevanje

jesse
Download Presentation

Tehnike pospeševanja upodabljanja v realnem času

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

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)

More Related