slide1 n.
Download
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

Loading in 2 Seconds...

play fullscreen
1 / 74

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


  • 143 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Tehnike pospeševanja upodabljanja v realnem času' - jesse


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


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

Tehnike pospeševanja

upodabljanja v realnem času

motiva cija
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
veliki modeli simulacija rastlinskega ekosistema
Veliki modeli:Simulacija rastlinskega ekosistema
  • 16.7 milionov poligonov (na primer)

Deussen et al: Realistic Modeling of Plant Ecosystems

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

notranji vozel=

Graf scene
  • DAG – directed acyclic graph
    • Simply an n-ary tree without loops
  • Uporaba: detekcija trkov, hitrejše upodabljanje
vsebina grafa scene
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
primer grafa scene
Primer grafa scene

graf scene

krogi=BV

koren

transformi v grafu scene

Move right,

Rotate 45°

Move up

Transformi v grafu scene
  • V vsak notranji vozel damo transform
  • Daje možnost instanc in hierarhične animacije
primer noga teka a

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

tehnike izlo anja
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
izlo anje pregled
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)
primeri izlo anja

podrobnosti

zakrita telesa

Primeri izločanja

Vidni stožec

zadnje strani

portal

izlo anje zadnjih strani
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)
izlo anje zadnjih strani1
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

kako izlo amo zadnje strani
Kako izločamo zadnje strani

1

2

back

2

eye

1

front

0

0

front

back

screen space

eye space

izlo anje zadnjih strani2
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
view frustum culling
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
test obsegajo e krogle 1
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
test obsegajo e krogle 2
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

}

test obsegajo e krogle 3
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.
celice in portali
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
izlo anje portalov
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
primer izlo anja portalov
Primer izločanja portalov
  • Pogled od zgoraj na poslopje
  • krogi so objekti, ki naj bi bili upodobljeni
algoritem izlo anja portalov
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

tipi geometrije
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

precenitev portalov
Precenitev portalov
  • Za poenostavitev:

dejanski portal

Precenjen portal

celice in portali1
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…
celice in portali2
Celice in portali

A

D

E

F

B

C

G

H

A

E

B

C

D

F

G

H

celice in portali3
Celice in portali

A

D

E

F

B

C

G

H

A

E

B

C

D

F

G

H

celice in portali4
Celice in portali

A

D

E

F

B

C

G

H

A

E

B

C

D

F

G

H

celice in portali5
Celice in portali

A

D

E

F

B

C

G

H

A

E

B

C

D

F

G

H

celice in portali6
Celice in portali

A

D

E

F

B

C

G

H

A

E

B

C

D

F

G

H

celice in portali7
Celice in portali

A

D

E

?

F

B

C

G

H

A

E

B

C

D

F

G

?

H

celice in portali8
Celice in portali

A

D

E

X

F

B

C

G

H

A

E

B

C

D

F

G

X

H

celice in portali9

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

celice in portali10

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

celice in portali11
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
algoritem izlo anja portalov1
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/
izlo anje podrobnosti
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
primer izlo anja podrobnosti
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

projekcija
Projekcija
  • Projekcija se razpolovi, če je razdalja podvojena

oko

projekcija1
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

izlo anje zakritih predmetov
Izločanje zakritih predmetov
  • Main idea: Objects that lies completely “behind” another set of objects can be culled
  • Hard problem to solve efficiently
primer
Primer
  • Opomba: “Portal Culling” je algoritem za izločanje zakritih predmetov

Končna slika

algoritem izlo anja zakritih predmetov
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;

primer z algoritmom izlo anja zakritih predmetov
Primer z algoritmom izločanja zakritih predmetov
  • Obdelujemo od spredaj proti ozadju
  • Vzdržujemo “horizont zakritosti” (zelen)
primer z algoritmom izlo anja zakritih predmetov1
Primer z algoritmom izločanja zakritih predmetov
  • Za obdelavo tetraedra (ki je za sivimi objekti):
    • Najdemo “axis-aligned box” projekcije
    • Primerjamo s horizontom zakritosti

Izločen

primer z algoritmom izlo anja zakritih predmetov2
Primer z algoritmom izločanja zakritih predmetov
  • Ko za nek predmet ugotovimo, da je viden:
  • Dodamo njegovo “moč zakrivanja” predstavitvi zakrivanja
tvorba lod
Tvorba LOD
  • Geometrical simplification which removes polygones from the original model. This may or may not preserve topologie. For an other overview, you migh want to take a look at:
  • Strutural simplification which uses a new, simpler representation of the object.
  • Scene simplification which replaces areas of the scene with simpler representations.
nivoji podrobnosti upodabljanja lod
Na različnih oddaljenostih od opazovalca uporabljamo različne nivoje podrobnosti

Več trikotnikov za bližnje predmete

Nivoji podrobnosti upodabljanja (LOD)
namesto modela plakat
Namesto modela plakat

Tehnika plakata

Namesto kompleksnih modelov le k nam obrnjena tekstura

Free movement around aslicing-based tree and the original mesh tree.

re itev
Rešitev
  • Drevo posnamemo iz več smeri.
    • 6 pogledov, ortogonalna projekcija
implementacija
Implementacija
  • Postavimo vse poglede v prostor.
podrobnosti implementacije
Podrobnosti implementacije
  • Naložiti moramo teksture, jim spremeniti velikost (povprečenje z upoštevanjem kanala alfa), da ne porabimo preveč pomnilnika.
  • Pazimo na atan2(), inicializiramo 3D kartico.
risanje poljubnega pogleda 1
Risanje poljubnega pogleda 1
  • Najdemo najbližja dva pogleda.
  • Projeciramo poligone v koordinatni sistem zaslona.
  • Določimo prosojnost posameznega pogleda.
    • Funkcija za blending je (1-alfa)*ozadje + alfa*poligon
    • Prosojnost bližnjega pogleda je med 100% in 50%, oddaljenega med 50% in 0%. Prehajanje mora biti mehko.
  • Rišemo od zadaj naprej, najprej bolj oddaljen pogled, potem pa še bližnji.
    • Kompliciranje z z-bufferji ali rezanjem oddaljenega pogleda ob bližnji ne naredijo velike razlike.
risanje poljubnega pogleda 2
Risanje poljubnega pogleda 2
  • Rišemo od zadaj naprej, najprej bolj oddaljen pogled, potem pa še bližnji.
    • Kompliciranje z z-bufferji ali rezanjem oddaljenega pogleda ob bližnji ne naredijo velike razlike.

Movie

kombinacija tehnik
Kombinacija tehnik
  • Not trivial to combine!
  • VF Cull + LOD == minimal if serious about performance
  • Indoors: LOD + portal culling
  • Outdoors (cities, suburbia): VF Cull + LOD + occlusion culling
real time rendering
Real-Time Rendering?
  • In computer graphics, “real-time” is used in a soft way: say >30 fps for most frames
  • In other contexts, it’s a tougher requirement: the framerate must never be <30 fps, i.e., constant framerate
  • What can we do?
    • Reactive LOD algorithm
    • Reactive detail culling
    • Reactive visual quality
odkrivanje trkov
Odkrivanje trkov
  • To get interesting and more realistic interaction between geometric objects in an application
  • Cannot test each triangle against each other: O(n*m)
  • Alas, need smarter approaches
  • Use BVs because these are cheap to test
  • Use a scene graph (hiearchy)
    • For efficiency use only one triangle per leaf
kolizija 2 grafov scene
Kolizija 2 grafov scene?
  • Three cases:
  • Reach two internal nodes’ BVs
    • If not overlap, then exit
    • If overlap, then descend into the children of the internal node with largest volume
  • Reach an internal node and a triangle
    • Descend into the internal node
  • If you reach two triangles
    • Test for overlap
  • Start recursion with the two roots of the scene graphs
bounding volumes in collision detection
Bounding Volumes in Collision Detection
  • Wanted: tight fitting BV, and fast to test for overlap
  • Common choices are
    • Spheres
    • Axis aligned box
    • Oriented box
triangle triangle overlap test
Triangle-triangle overlap test
  • Compute the line of intersection between the two planes
  • Compute the intersection interval between this line and triangles
    • gives two intervals
  • If intervals overlap then triangles overlap!
simpler collision detection
Simpler collision detection
  • Only shoot rays to find collisions, i.e., approximate an object with a set of rays
  • Cheaper, but less accurate
  • Can use the scene graph again or a BSP tree
can you compute the time of a collision
Can you compute the time of a collision?

v

  • Move ball, test for hit, move ball, test for hit… can get “quantum effects”!
  • In some cases it’s possible to find closed-form expression: t=s/v

s