Sunteți pe pagina 1din 31

GRAFICA 3D

Valentin Stoica

Grafica 3D UPB 2020-2021 1


Metode de simplificare a datelor

 Număr mare de poligoane => volum mare de


date => cerințe ridicate de stocare și
procesare
 Metode de aproximare = simplificarea
(rafinarea) datelor

Grafica 3D UPB 2020-2021 2


Metode de simplificare a datelor
 Tehnica de simplificare directă prin
reducerea uniformă a numărului de poligoane
de reprezentare a obiectului
 nu se poate controla
precizia de reprezentare
=> inacceptabilă

Grafica 3D UPB 2020-2021 3


Grafica 3D UPB 2020-2021 4
Metode de simplificare a datelor

 Modelarea adaptivă
 păstreaza o precizie de
reprezentare constantă
 dimensiunea feţelor
poligonale variază în funcţie
de curbura suprafeţei
 în părţile cu curbură
pronunţată sunt introduse
mai multe poligoane pe
unitatea de suprafaţă

Grafica 3D UPB 2020-2021 5


Metode de simplificare a datelor
 Modelarea cu nivele de detaliu multiple
(levels of detail- LOD)
 se selectează nivelul de detaliu corespunzător, în
funcţie de poziţia obiectului faţă de punctul de
observare

Grafica 3D UPB 2020-2021 6


(a)

(b)

Modelul avionului F-16 pe două nivele de detaliu diferite:


(a) 2413 poligoane; (b) 286 poligoane.

Grafica 3D UPB 2020-2021 7


Generarea modelului poligonal

 Generarea modelului din descrierea


matematică a obiectului
 Generarea modelului obiectului prin baleiere
spaţială
 Generarea modelului pe baza unei mulțimi de
puncte aparținând suprafeței de frontieră

Grafica 3D UPB 2020-2021 8


Generarea modelului din descrierea
matematică
 Se generează reţeaua de poligoane de
aproximare a obiectelor care au o descriere
matematică cunoscută
 Elipsoid x 2 a 2  y2 b2  z2 c2  1  0

x 2 a 2  y 2 b 2  z 2 c 2  1  0 si
 Hiperboloid
x 2 a 2  y2 b2  z2 c2  1  0

 Paraboloid eliptic x 2 a 2  y2 b2  z

Grafica 3D UPB 2020-2021 9


Generarea modelului din descrierea
matematică

Grafica 3D UPB 2020-2021 10


Generarea modelului obiectului prin
baleiere spatială
 Prin deplasarea (sweeping) unei suprafeţe
generatoare de-a lungul unei curbe oarecare

Grafica 3D UPB 2020-2021 11


Generarea modelului pe baza unei multimi de
puncte apartinând suprafetei de frontieră
 Modelare a obiectelor tridimensionale pe
baza unei mulţimi de puncte distribuite
uniform sau neuniform pe suprafaţa
obiectelor
 colecţie de puncte
 Proiectare (CAD)
 Scanare, harți digitale
 construirea reţelei de poligoane care să
aproximeze obiectul cu precizia dorită
 triangularizare

Grafica 3D UPB 2020-2021 12


Triangularizarea
 Suprafata este
aproximata printr-o
colectie de
triunghiuri adiacente
Triangularizarea punctelor obținute pe
baza unei grile uniforme

Triangularizarea cu diferite grade de aproximare

Grafica 3D UPB 2020-2021 13


Transformari geometrice in spatiul
tridimensional

 Transformari geometrice primitive:


 translaţia - modifică localizarea obiectului
 rotaţia - modifică orientarea
 scalarea - modifică dimensiunea obiectului

Grafica 3D UPB 2020-2021 14


Translatia

 Transformarea prin care toate punctele se


deplasează în aceeaşi direcţie şi cu aceeaşi
distanţă între punct şi transformatul său

 Descrisă printr-un vector de translaţie T,


având componentele tx, ty, tz pe cele trei axe
de coordonate

Grafica 3D UPB 2020-2021 15


Translatia x '  x  t x

 P(x,y,z) → P’(x’,y’,z’), unde  y'  y  t y

z '  z  t z

 Notatia matriceala:
t x   x '  x   t x 
   y '   y    t 
P' = P + T , unde T   t y  ; deci:     y 
 t z   z'   z   t z 

Grafica 3D UPB 2020-2021 16


Scalarea

 Transformarea prin care se modifică


coordonatele tuturor punctelor unui obiect
folosind factorii de scală sx, sy, respectiv sz pe
cele trei axe de coordonate
x '  x  s x

 P(x,y,z) → P’(x’,y’,z’), unde  y'  y  s y

z '  z  s z

Grafica 3D UPB 2020-2021 17


Scalarea
 Notatia matriceala:
s x 0 0
S   0 sy 0 
 0 0 s z 

 x ' s x 0 0  x 
 y '   0 sy 0   y 
P'  S P, deci  
 z'   0 0 s z   z 

Grafica 3D UPB 2020-2021 18


Rotatia

 Rotaţia cu un unghi  în raport cu o axă D este o transformare


prin care orice punct P care nu este situat pe dreapta D se
transformă într-un punct P’ astfel încât P şi P’ sunt situate într-un
plan perpendicular  pe dreapta D, unghiul PIP’este egal cu , iar
modulele |IP| şi |IP’| sunt egale (punctul I este intersecţia dintre
dreapta D şi planul ).

 Toate punctele dreptei D sunt fixe şi numai ele sunt puncte


invariante ale transformării. Transformarea de rotaţie în raport cu
o axă oarecare se descompune într-o succesiune de maximum
trei transformări de rotaţie în raport cu axele de coordonate ale
sistemului de referinţă.

Grafica 3D UPB 2020-2021 19


Rotatia
 Rotaţia în raport cu axa z cu un unghi  transformă
un punct P(x,y,z) în punctul P’(x’,y’,z’), ambele aflate
în planul  perpendicular pe axa z
P’ 
y x   cos u

P
P y   sin u


I u
x '   cos(u  )
x P’
O y'   sin( u  )

z
x '  (cos u cos   sin u sin )  x cos   y sin 
y'  (sin u cos   sin  cos u )  x sin   y cos 

Grafica 3D UPB 2020-2021 20


Rotatia
 Notatia matriceala:
cos   sin  0
R Z ()   sin  cos  0
 0 0 1

 x ' cos   sin  0  x 


 y'   sin  cos  0  y 
P' = R Z P , deci
    
 z'   0 0 1  z 

Grafica 3D UPB 2020-2021 21


Transformari geometrice in spatiul
tridimensional
 x '  x   t x 
 y '   y    t 
Translaţia      y 
 z'   z   t z 

 x ' s x 0 0  x 
 y '   0 sy 0   y 
Scalarea   
 z'   0 0 s z   z 

 x ' cos   sin  0  x 


Rotaţia  y'   sin  cos  0  y 
    
 z'   0 0 1  z 

Grafica 3D UPB 2020-2021 22


Sisteme de coordonate omogene

 Introdus pentru reprezentarea unitară şi


combinarea transformărilor geometrice
spaţiale
 Un sistem de coordonate cu patru dimensiuni
 X  xw
P(x,y,z) → P(X,Y,Z,w), unde

Y  yw pentru w
0 Z  zw

Grafica 3D UPB 2020-2021 23


Sisteme de coordonate omogene
x  X / w
 P(X,Y,Z,w) → P(x,y,z) unde  y  Y / w
z  Z / w

Grafica 3D UPB 2020-2021 24


Sisteme de coordonate omogene
 În coordonate omogene, două puncte
P1 (X1 , Y1 , Z1 , w 1 ) şi
P2 ( X 2 , Y2 , Y2 , w 2 ) sunt egale
dacă:
X1 / w 1  X 2 / w 2 , Y1 / w 1  Y2 / w 2 si Z1 / w 1  Z 2 / w 2

 În sistemele de coordonate omogene, toate


matricele de transformări sunt de dimensiune
4  4 şi toate operaţiile de transformări
geometrice se pot exprima prin produse de
matrice.
Grafica 3D UPB 2020-2021 25
Translatia în coordonate omogene
1 0 0 tx 
0 1 0 t y 
T( t x , t y , t z )  
0 0 1 tz 
 
0 0 0 1

 X ' 1 0 0 t x  X  X'  X  wt x
 Y ' 0 Y'  Y  wt
  1 0 t y   Y   y
P'  T P  Z'  0
  
0 1 t z  Z 
 
; rezultă

Z'  Z  wt z
w '  w
 w ' 0 0 0 1  w  

x '  X ' / w '



In coordonate carteziene  y'  Y ' / w '
 z '  Z' / w '

Grafica 3D UPB 2020-2021 26


Scalarea fată de origine în coordonate omogene

s x 0 0 0
0 sy 0 0
S(s x , s y , s z )  
0 0 sz 0
 
0 0 0 1

 X' s x 0 0 0  X  X '  s x X
 Y '  0 0  Y  
  sy 0 Y '  s y Y
P'  SP  Z'   0 0 sz 0  Z  ;

      Z'  s z Z
 w '  0 0 0 1  w  w '  w
rezulta 

x '  X ' / w '



 y'  Y ' / w '
In coordonate carteziene  z '  Z' / w '

Grafica 3D UPB 2020-2021 27


Transformările de rotatie în coordonate omogene
 Rotaţia în raport cu axa x cu un unghi 
1 0 0 0
0 cos   sin  0
R X ()  
0 sin  cos  0
 
0 0 0 1

 X' 1 0 0 0  X  X '  X
 Y' 0 cos   sin  Y'  Y cos   Z sin 
0  Y  
P'  R X P  
 Z'  0 sin  cos  0  Z 
; rezulta

Z'  Y sin   Z cos 
     w '  w
 w ' 0 0 0 1  w 

Grafica 3D UPB 2020-2021 28


Transformările de rotatie în coordonate omogene

 Rotaţia în raport cu axa y cu un unghi 


 cos  0 sin  0
 0 1 0 0
R Y ()  
 sin  0 cos  0
 
 0 0 0 1

 X'  cos  0 sin  0  X  X'  X cos   Z sin 


 Y '  0 1 0 0  Y  Y '  Y
P'  R Y P   
 Z'   sin  0 cos  0  Z  ; rezulta

Z'   X sin   Z cos 
    
 w '  0 0 0 1  w  w '  w

Grafica 3D UPB 2020-2021 29


Transformările de rotatie în coordonate omogene

 Rotaţia în raport cu axa z cu un unghi 


cos   sin  0 0
 sin  cos  0 0
R Z ()  
 0 0 1 0
 
 0 0 0 1

X' cos   sin  0 0 X X'  X cos  - Y sin 


Y'  sin  cos  Y'  X sin   Y cos 
  0 0 Y 
P'  R Z P
Z'   0 0 1 0 Z ; rezulta

 Z'  Z
     w '  w
w'  0 0 0 1 w

Grafica 3D UPB 2020-2021 30


Transformari primitive in coordonate omogene
 Transformările geometrice elementare sunt
transformări liniare, prin care liniile drepte şi
suprafeţele plane sunt transformate în linii
dreapte, respectiv suprafeţe plane
pentru transformarea unui obiect tridimensional
este suficient să se transforme toate vârfurile
acestuia şi să se păstreze relaţiile topologice între
vârfurile transformate, aceleaşi cu cele între
vârfurile iniţiale
 Transformările mai complexe ale obiectelor
în spaţiu se pot defini prin compunerea mai
multor transformări primitive

Grafica 3D UPB 2020-2021 31

S-ar putea să vă placă și