Sunteți pe pagina 1din 29

GRAFICA 3D

Valentin Stoica

Grafica 3D UPB 2020-2021 1


Sisteme de referina de vizualizare
yv
y

sistem de
referinţă
universal
zz

sistem de
referinţă de
observare xx

Ov xv

zv

Grafica 3D UPB 2020-2021 2


Transformarea de observare
 sistem de referinţă universal → sistem de referinţă de
observare
 Transformare analogă cu poziţionarea unei camere foto/video,
prin care se observă o anumită zonă din scena virtuală
 În sistemul de referinţă universal sunt reprezentate toate
obiectele (modelele) scenei virtuale
 În fiecare cadru al imaginii (frame), este generată imaginea
acelor obiecte din scenă care sunt vizibile din punctul de
observare curent (view point)
 Exemplu (simulatoare, aplicaţii în arhitectură, etc.) :
 scena virtuală reprezentată în sistemul de referinţă universal este
menţinută într-o poziţie constantă (cel mult existând anumite
obiecte mobile în scenă),
 observatorul este cel care îşi modifică poziţia şi orientarea, şi în
funcţie de acestea se redă imaginea corespunzătoare pe ecran
 direcţia de observare a scenei este direcţia axei z a sistemului de
referinţă de observare

Grafica 3D UPB 2020-2021 3


Transformarea de observare
 Localizarea şi orientarea sistemului de
referinţă de observare OVxVyVzV în raport cu
sistemul de referinţă universal Oxyz poate fi
descrisă printr-o matrice de transformare M
de forma generală:
1 0 0 x v   c11 c 21 c 31 0  c11 c 21 c 31 xV 
0 1 0 y V  c12 c 22 c 32 0 c12 c 22 c 32 y V 
M  TV R V  
0 0 1 z V  c13 c 23 c 33 0 c13 c 23 c 33 zV 
    
0 0 0 1  0 0 0 1  0 0 0 1 

Grafica 3D UPB 2020-2021 4


Sisteme de vizualizare
 TV este matricea de translaţie a sistemului de
referinţă de observare în raport cu sistemul de
referinţă universal; xVyVzV sunt coordonatele
punctului de observare OV în sistemul Oxzy.
 RV reprezintă orientarea sistemului de referinţă de
observare faţă de sistemul de referinţă universal:
 c11, c12, c13 - cosinuşii directori ai axei OVxV faţă de axele
Ox, Oy, respectiv Oz
 c21, c22, c23 - cosinuşii directori ai axei OVyV faţă de axele
Ox, Oy, respectiv Oz
 c31, c32, c33 - cosinuşii directori ai axei OVzV faţă de axele
Ox, Oy, respectiv Oz

Grafica 3D UPB 2020-2021 5


Sisteme de vizualizare
 Un punct oarecare P(x,z,y) din sistemul Oxyz
se transformă în punctul PV(xV,yV,zV) în
sistemul de referinţă observator prin înmulţire
cu matricea inversă, deci:
PV  M 1 P  R V1 TV1 P  M V P

unde MV este inversa matricei de localizare a


sistemului de referinţă de observare relativ la
sistemul de referinţă universal, adică M V  M 1

Grafica 3D UPB 2020-2021 6


Transformarea de proiectie
 Proiecție - transformarea prin care se micsoreaza
dimensionalitatea 3D → 2D.
 Pentru o transformare de proiectie din spatiul 3D in
spatiul 2D se definesc:
 planul de proiectie
 centrul de proiectie
 Proiecţia unui obiect tridimensional pe un plan
(numit plan de proiecţie sau plan de vizualizare –
view plane) este formată din mulţimea punctelor de
intersecţie între acest plan şi dreptele numite
proiectori, care pornesc dintr-un punct fix numit
centru de proiecţie şi trec prin fiecare punct al
obiectului
Grafica 3D UPB 2020-2021 7
Transformarea de proiectie
 În funcţie de distanţa centrului de proiecţie faţă de planul de
proiecţie, proiecţiile plane se clasifică în:
 proiecţie perspectivă - centrul de A’
A
proiecţie se află la distanţă finită Directie de
proiectie
faţă de planul de vizualizare X
 redă cel mai bine efectul
B
de descreştere a dimensiunilor B

obiectelor odată cu creşterea Planul de
distanţei acestora faţă de observator proiectie

A
 proiecţie paralele - centrul de A’
Directie de
proiecţie este la infinit; proiectorii proiectie

sunt drepte paralele şi au o direcţie B’


B
comună, numită direcţie de proiecţie

Grafica 3D UPB 2020-2021 8


Proiectia paralela
 centrul de proiecţie este la infinit, iar toate dreptele de
proiecţie sunt paralele între ele, având o direcţie numită direcţia
de proiecţie
 imaginea rezultată nu oferă informaţii asupra distanţei

obiectelor în scenă
A
 proiecţie ortografică: planul de A’
Directie de
proiectie
proiecţie al unei proiecţii paralele
B’
poate fi perpendicular pe direcţia B

de proiecţie Planul de
proiectie

A
A’
 proiecţie oblică: planul de Directie de
proiectie

proiecţie poate avea o înclinare


B’
oarecare faţă de direcţia de proiecţie B

Grafica 3D UPB 2020-2021 9


Proiectia paralela
 Matricea de transformare de proiecţie
ortografică în planul z = 0 are următoarea
expresie:
1 0 0 0
0 1 0 0
PZ  
0 0 0 0
 
0 0 0 1

 un punct P(x,y,z) se transformă în punctul


P’(x,y,0), care are aceleaşi coordonate x şi y,
iar z are valoarea zero:
P(x,y,z) → P’(x, y, 0)

Grafica 3D UPB 2020-2021 10


Proiectia paralela
0 0 0 0 1 0 0 0 1 0 0 0
0 1 0 0 0 0 0 0 0 1 0 0
PX   PY   PZ  
0 0 1 0 0 0 1 0 0 0 0 0
     
0 0 0 1 0 0 0 1 0 0 0 1

 Proiecţiile ortografice sunt folosite frecvent în


desenul tehnic

Grafica 3D UPB 2020-2021 11


Proiectia perspectiva
 Proiecţia perspectivă se poate defini pornind de la sistemul de
observare considerat ca un sistem de referinţă stâng:
 centrul de proiecţie se fixează în centrul sistemului de referinţă
de observare OV
 direcţia de observare (de privire) este în sensul pozitiv al axei
OVzV
 planul de vizualizare  este un plan perpendicular pe axa OVzV, la
distanţa d faţă de centru
Directia de observare Directia de observare
yV yV
P P

P’ P’
yV yV
yP OV yP
OV B B
A zV zV A – zV
d d
xV zV zV
xV
 

Sistem de referintă de observare stâng Sistem de referintă de observare drept

Grafica 3D UPB 2020-2021 12


Proiectia perspectiva
 Punctul P(xV,yV,zV) în sistemul de referinţă de
observare se proiectează în punctul
P’(xP,yP,zP), aflat la intersecţia dreptei OVP cu
planul de vizualizare. Din triunghiurile
asemenea OVP’A şi OVPB, rezultă:
d xV
xP 
zV
d yV
yP 
zV

Grafica 3D UPB 2020-2021 13


Proiectia perspectiva
 În notația matriceală:
1 0 0 0
0 1 0 0
MP  
0 0 1 0
 
0 0 1/ d 0

 X P  1 0 0 0  X V 
 Y  0 1 0
 P 0  YV 
P' = M P P ,  Z P  0 0 1 0  Z V 
    
 w P  0 0 1 / d 0  w V 

X P  X V
 x P  X P / w P  d X V / Z V  d x V z V
YP  YV 
 și  y P  YP / w P  d YV / Z V  d y V z V
Z P  Z V z  Z / w  d
w P  Z V / d  P P P

Grafica 3D UPB 2020-2021 14


Proiectia perspectiva
 Proiecţia perspectivă necesită o împărţire a
coordonatelor x şi y cu distanţa z ↔ în
proiecţia perspectivă imaginea unui obiect
este cu atât mai mică cu cât se află la
distanţă mai mare de punctul de observare

Grafica 3D UPB 2020-2021 15


Proiectia perspectiva
 Sistemul de proiecţie definit anterior este unul
simplu:
 toate obiectele din scenă sunt proiectate pe planul de
vizualizare
 are mai multe inconveniente şi nu poate fi folosit decât în
aplicaţii foarte simple, în care se proiectează obiecte aflate
tot timpul în câmpul de observare
 Transformarea de proiecţie perspectivă este o
transformare costisitoare:
 necesită operaţii de împărţire ↔ timp de calcul ridicat, dacă
este executată prin program, sau circuite complexe, dacă
este implementată hardware
 se execută pentru toate obiectele scenei, inclusiv pentru
cele care nu sunt vizibile, deci nu sunt reprezentate pe
display şi nu necesită coordonatele în planul de vizualizare

Grafica 3D UPB 2020-2021 16


Sistem de referinta normalizat
Transformarea de normalizare
 Pentru redarea eficientă a scenelor tridimensionale,
este necesară definirea unui volum de vizualizare
(view volume), cunoscut sub numele de piramida
de vizualizare sau trunchiul de piramidă de
vizualizare (frustum):
 trunchiul de piramidă de vizualizare se defineşte în
sistemul de referinţă de observare
 în forma cea mai simplă, trunchiul de piramidă de
vizualizare este mărginit de patru plane laterale care trec
prin punctul de observare OV şi de două plane
perpendiculare pe axa OVzV, planul apropiat (near) pe care
se execută proiecţia, şi planul depărtat (far)

Grafica 3D UPB 2020-2021 17


Volumul de vizualizare

Directia de observare
yV
yV=h zV/d

B
A
OV h
g zV
C
xV zV=d D

xV = g zV/d
zV = f

Definirea trunchiului de piramidă de vizualizare (frustum)


în sistemul de referintă de observare stâng.

Grafica 3D UPB 2020-2021 18


Volumul de vizualizare
 Intersecţia dintre cele patru plane laterale şi planul de vizualizare
(care, în această definiţie, este şi planul apropiat de vizibilitate)
determină o suprafaţă dreptunghiulară ABCD în planul de
vizualizare în care vor fi proiectate toate obiectele vizibile ale scenei
↔ fereastra de vizualizare (view plane window)
 Ecuaţiile celor şase plane ale trunchiului de piramidă regulată sunt:
x V   g z V d

y V   h z V d

z V  d
z V  f
unde:
2g – dimensiunea laturii orizontale a ferestrei de vizualizare (latura AB)
2h – dimensiunea laturii verticale a ferestrei de vizualizare (latura BC)
d – distanţa planului de vizualizare şi a planului apropiat
f – distanţa planului depărtat.

Grafica 3D UPB 2020-2021 19


Volumul de vizualizare
 Semnificaţia volumului de vizualizare este:
 dintre toate obiectele din scena virtuală sunt vizibile şi
redate în fereastra de vizualizare numai acele obiecte sau
părţi din obiecte care sunt cuprinse în acest volum
 Trunchiul de piramidă de vizualizare defineşte în
acest fel şi volumul de decupare, operaţie care se
execută într-unul din sistemele de referinţă care se
definesc în cadrul transformării de proiecţie -
sistemul de referinţă normalizat (sistem de
referinţă canonic)

Grafica 3D UPB 2020-2021 20


Sistem de referinta normalizat
Transformarea de normalizare
 Sistemul de referinţă normalizat este un sistem de coordonate
tridimensional în care trunchiul de piramidă de vizualizare se
transformă într-un volum canonic, care, în general, este un
paralelipiped dreptunghic
 Pentru sistemul de proiecţie definit în acest paragraf, volumul
canonic este un paralelipiped dreptunghic cu latura bazei egală
cu 2 şi înălţimea 1 (după axa zN)
 Permite abordarea transformării de proiecţie perspectivă în două
etape:
 o transformare din sistemul de referinţă de observare în sistemul
de referinţă normalizat (numită transformare de normalizare)
 calculul proiecţiei prin împărţirea cu w a coordonatelor omogene
 Între cele două etape ale transformării de proiecţie perspectivă
se execută o operaţie importantă în grafica tridimensională -
decuparea obiectelor relativ la volumul de vizualizare
normalizat (volumul canonic).

Grafica 3D UPB 2020-2021 21


Transformarea de normalizare
 Cerinţe ce se impun pentru transformarea
de normalizare (transformarea de la
sistemul de referinţă de observare la
sistemul de referinţă normalizat):
1. se normalizează coordonata zN, care reprezintă
adâncimea, astfel încât să se obţină precizie maximă în
operaţiile de comparaţie a adâncimii punctelor.
2. liniile din sistemul de referinţă observator trebuie să se
transforme în linii în sistemul de referinţă normalizat.
3. suprafeţele plane din sistemul de referinţă observator
trebuie să se transforme în suprafeţe plane în sistemul
de referinţă normalizat.

Grafica 3D UPB 2020-2021 22


Transformarea de normalizare
 aceste cerinţe sunt satisfăcute de transformarea
z N = a + b/z V
unde a şi b sunt constante ce se determină din
următoarele condiţii:
 se alege b < 0, astfel ca zN să crească atunci când creşte
zV. Această condiţie conservă noţiunea intuitivă de
adâncime: un punct are coordonata zN cu atât mai mare cu
cât este mai departe de observator.
 se normalizează domeniul de variaţie al lui zN, astfel ca
domeniul zV[d,f] să se transforme în domeniul zN[0,1].

Grafica 3D UPB 2020-2021 23


Transformarea de normalizare
 Relaţiile care definesc transformarea de
normalizare sunt:
d xV d yV f  d 
xN  ; yN  ; zN  1  
g zV h zV f  d  zV 

 Coordonatele omogene ale unui punct în


sistemul normalizat au expresiile:
X N  d x V g

 YN  d y V h

Z N  z V f /(f  d)  df/(f  d)
w N  z V

Grafica 3D UPB 2020-2021 24


Transformarea de normalizare
 Se deduce matricea de transformare de
normalizare MN care efectuează
transformarea de la sistemul de referinţă
observator la sistemul de referinţă normalizat:
d / g 0 0 0  X N  x V 
 0 d / h 0 0  Y  y 
MN    N   M  V
N
 0 0 f /(f  d)  df/(f  d)  ZN  z V 
     
 0 0 1 0  w
 N  1 

Grafica 3D UPB 2020-2021 25


Transformarea de normalizare
 Matricea de transformare de normalizare MN
poate fi exprimată ca un produs de două
matrice astfel:
1 0 0 0  d / g 0 0 0
0 1 0 0  0 d/h 0 0
MN    M N2 M N1
0 0 f /(f  d)  df/(f  d)  0 0 1 0
  
0 0 1 0  0 0 0 1

Grafica 3D UPB 2020-2021 26


Transformarea de normalizare
 Sistemul de referinţă normalizat astfel definit
este un sistem de referinţă stâng.
 Matricea MN1 este o matrice de scalare
neuniformă prin care trunchiul de piramidă de
vizualizare este transformat într-un trunchi de
piramidă regulată cu unghiul la vârful
piramidei de 90.
 Matricea MN2 transformă acest trunchi de
piramidă regulată în volumul canonic, care
este un paralelipiped dreptunghic
Grafica 3D UPB 2020-2021 27
Transformarea de normalizare
y’

Volumul MN1
yV de vizualizare

d
h

OV zV O’ z’
d

f
d
(b)
(a)

MN2
yN
(a) Volumul de vizualizare în 1
sistemul de referinţă de observare.
(b) Scalarea care transformă
volumul de vizualizare în trunchi (c)
de piramidă regulată cu unghiul la 1 zN
vârful piramidei de 90 grade.
(c)Volumul de vizualizare canonic
în sistemul de referinţă normalizat. – 1

Grafica 3D UPB 2020-2021 28


Sistem de referinta normalizat
 În sistemul de referinţă normalizat se execută operaţia de
decupare a obiectelor în coordonate normalizate omogene:
 din totalitatea obiectelor scenei virtuale sunt reţinute numai acele
obiecte sau părţi (rezultate prin decupare) aflate în interiorul
volumului de vizualizare canonic, ceea ce înseamnă că, înainte
de transformarea de normalizare, acestea se aflau în interiorul
trunchiului de piramidă de vizualizare.
 Din coordonatele omogene XN, YN, ZN , wN se pot deduce
coordonatele xN, yN şi zN ale punctului în sistemul de referinţă
normalizat tridimensional:

d xV d yV f  d 
xN  XN wN  ; y N  YN w N  ; z N  ZN w N  1  
g zV h zV f  d  zV 

Grafica 3D UPB 2020-2021 29

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