Documente Academic
Documente Profesional
Documente Cultură
3D
Vizibilitatea obiectelor dintr-o scena 3D depinde de:
Poziia observatorului
Grafica pe calculator Poziionarea obiectelor din scena unul fata de celalalt
Volumul vizual
Determinarea vizibilitii in scene 3D Parile nevizibile ale unui obiect 3D sunt:
Fee auto-obturate
Victor Moraru Pari obturate de alte obiecte, aflate in fata obiectului in
raport cu observatorul
yv
xv
zv
Pixel vizibil
11 pixel Planul de proiectie 12
Algoritmul z-buffer Algoritmul z-buffer
Principiu: Algoritmul z-buffer:
Doua fragmente aflate pe acelai proiector, rezultate Iniializeaz buffer-ul imagine la culoarea de fond
din isterizarea a doua primitive diferite, au coordonata
Iniializeaz Z-buffer la coordonata z a planului din spate al
z diferita. volumului vizual (z=1)
Pentru fiecare fragment f(x,y,z) rezultat din rasterizarea unei primitive
Fragmentul avnd coordonata z mai mica va fi afisat
dac z< Z-buffer[y][x] atunci
in pixelul (x,y).
Z-buffer[y][x] = z
actualizeaz culoarea pixelului (x,y) in buffer-ul imagine folosind
culoarea fragmentului f
13 14
profunzime 0 1
z
x After
17 18
19 20
Algoritmul BSP
Algoritmul z-buffer
(Binary Space Partitioning)
Aprecieri asupra algoritmului z-buffer Poate fi folosit pentru:
Eliminarea obiectelor aflate in afara volumului vizual (object culling)
1) Numrul de comparaii de valori z pentru un pixel:
numrul de fragmente care se proiecteaz in acel pixel.
Eliminarea parilor nevizibile ale feelor obiectelor (hidden surface
removal)
Timpul de calcul tinde sa devina independent de numrul
de poligoane: n medie, numrul de pixeli acoperii de un
Intrarea: lista poligoanelor care compun scena 3D
poligon este invers proporional cu numrul de poligoane.
(nu are importanta din care obiect face parte fiecare poligon)
2) Depth complexity: numrul de suprascrieri ale unui
pixel in buffer-ul imagine, la generarea unui cadru imagine Scena 3D este reprezentat printr-un arbore binar: arborele BSP
(calcul culoare fragment: model iluminare, utilizare texturi) Arborele BSP al scenei este independent de poziia observatorului
3) Valorile z (in z-buffer) sunt reprezentate prin numere (reprezint scena in sistemul coordonatelor globale)
ntregi: 16, 32 bii - pierdere precizie
21 22
25 26
27 28
Algoritmul pictorului Algoritmul pictorului
Intrare: lista poligoanelor care alctuiesc scena 3D, transformate in Pasul 3. Se descompun poligoanele ale cror extensii pe axa OZ se
spaiul de afiare suprapun
Forma general a algoritmului Este necesar numai dac extensiile pe axa OZ se suprapun
1. Se calculeaz extensia fiecrui poligon din list pe axele OX, Sunt multe aplicaii in care acest pas nu este necesar, poligoanele fiind
OY, OZ: paralelipipedul ncadrator al poligonului, cu feele paralele amplasate in plane de Z constant: cartografie, generarea straturilor
circuitelor imprimate, etc.
cu planele principale ale sistemului de coordonate
Poate fi optimizat, tiind ca nu ntotdeauna atunci cnd extensiile pe
2. Se ordoneaz poligoanele cresctor dup coordonata zmin a axa OZ se suprapun este necesara descompunerea poligoanelor;
fiecrui poligon: primul in lista va fi cel mai apropiat de observator testele se efectueaz progresiv, in funcie de complexitatea calculelor
3. Se descompun poligoanele ale cror extensii pe axa OZ se presupuse
suprapun, astfel nct extensiile lor pe axa OZ sa fie disjuncte
4. Se afieaz (transmit in banda grafica) poligoanele ncepnd cu Principalul efort de calcul: sortarea listei de poligoane i
ultimul din lista descompunerea, dac este necesara.
29 30
ntrebri ?
31