Grafica 3D per i beni culturali: I tool per multi-view stereo matching
Grafica 3D
-
Upload
catalinmihaipaterau -
Category
Documents
-
view
147 -
download
2
description
Transcript of Grafica 3D
-
Grafica 3D UPB 2011-2012 1
GRAFICA 3D
Valentin Stoica
-
Grafica 3D UPB 2011-2012 2
Bibliografie F. Ionescu, Grafica in realitatea virtuala, Ed.Tehnica 2000
R. Baciu, D. Volovici, Sisteme de prelucraregrafica, Ed. Albastra 1999
http://141.85.107.254/G3D/
-
Grafica 3D UPB 2011-2012 3
Introducere in grafica pe calculator O definitie a graficii pe calculator este data destandardul ISO:
Grafica pe calculator reprezinta acele metode sitehnici de conversie a datelor catre si de la undispozitiv grafic prin intermediul calculatorului.
-
Grafica 3D UPB 2011-2012 4
Introducere in grafica pe calculator Grafica pe calculator - sinteza (generarea)de imagini pornind de la un model(matematic)
conversie Prelucrarea si analiza imaginilor - conversiainversa de la imagine la modelul matematic
conversie inversa
modelmatematic
imagine pe dispozitivde afisare
calcul
imagine informatii(modele)
calcul
-
Grafica 3D UPB 2011-2012 5
Grafica pe calculator Implic dou aspecte importante
crearea modelului scenei virtuale vizulizarea scenei virtuale (+ interactiunea dintre calculator
si utilizator) Astfel:
imaginile se genereaza static sau dinamic imaginile generate sunt 2D sau 3D imaginile pot proveni din scene 2D sau 3D interactiunea cu utilizatorul
imagini interactive (fiecare imagine generata, frame, poate firezultatul unei actiuni cu utilizatorul)
imagini neinteractive
-
Grafica 3D UPB 2011-2012 6
Domenii de aplicare ale graficii pecalculator Interfete grafice ale aplicatiilor Sisteme CAD (in domenii precumproiectarea, design, arhitectura)
Prezentari grafice interactive sau multimedia(in combinatie cu alte medii: video, sunet,etc)
-
Grafica 3D UPB 2011-2012 7
Realitatea virtuala (mediu virtual,mediu sintetic de sinteza) Definitie
Tehnologia prin care utilizatorul se simte imersatintr-o realitate generata sintetic. Se refera lamodalitatea prin care calculatorul modific moduln care o persoan percepe realitatea, prinsimularea unei alte realiti. Aceast realitate, saumediu, simulat de calculator este numitRealitate Virtual.
-
Grafica 3D UPB 2011-2012 8
Realitatea virtuala Simturi in realitatea virtuala:
vzul auzul tactil (greutatea, temperatura, duritatea, rezistenala efort)
miros gust
-
Grafica 3D UPB 2011-2012 9
Tipuri de sisteme de realitate virtuala Tipuri de sisteme de realitate virtuala in functie de
gradul de imersivitate (de implicare, de interactiune)al utilizatorului: sisteme de realitate virtual desktop
imaginea vizual a mediului virtual tridimensional este afiatpe monitorul unui calculator (n general PC)
participantul interacioneaz cu mediul virtual prin dispozitivede intrare standard (tastatur, mouse, joystick)
observarea mediului virtual printr-o fereastr (ecranulmonitorului)
cele mai simple i mai ieftine sisteme de realitate virtual, darcu dezvoltri spectaculoase, datorit apariiei unui marenumr de acceleratoare grafice care permit redarea n timpreal a unor imagini realiste
-
Grafica 3D UPB 2011-2012 10
Tipuri de sisteme de realitate virtuala
sistemele de realitate mbogit combin informaiile generate de calculator cu cele ale
unui mediu real utilizatorul percepe lumea real, cu obiecte virtuale
suprapuse peste imaginea acesteia. se folosesc n medicin, planificarea micrilor roboilor,
aviaia militar, jocuri distractive. n astfel de aplicaii sefolosete un dispozitiv de afiare montat pe cap (HMD)care suprapune date generate de calculator pesteimaginea mediului real
-
Grafica 3D UPB 2011-2012 11
Tipuri de sisteme de realitate virtuala
sistemele de teleprezen un operator uman este conectat prin intermediul unei
interfee la senzori de poziie i camere video plasatentr-un mediu real. Operatorul poate s observe aciunileunui robot plasat ntr-un mediu inaccesibil (saupericulos) i s controleze micrile acestuia de la odistan sigur
-
Grafica 3D UPB 2011-2012 12
Tipuri de sisteme de realitate virtuala
sistemele de realitate virtual proiectiv imaginea mediului tridimensional este proiectat pe unul
sau mai multe ecrane, care pot fi vzute de unul sau maimuli utilizatori
imaginea afiat pe ecrane urmrete aciunile unuiadintre utilizatori, care demonstreaz anumite aciuni sauconcepte celorlali utilizatori din grup
-
Grafica 3D UPB 2011-2012 13
Tipuri de sisteme de realitate virtuala
sistemele de simulare (simulatoare) cea mai cunoscut i utilizat form de realitate virtual intr-un simulator participantul este plasat ntr-o versiune
aproape real a unei cabine de vehicul (avion, elicopter,main, tren, nav maritim, nav spaial). n aceastcabin participantul are posibilitatea de a interaciona cucomenzile de control reale ale vehiculului (manete,pedale, butoane, etc), n timp ce este creat imagineamediului virtual n care se desfoar experimentul,imagine care rspunde aciunilor efectuate departicipant
-
Grafica 3D UPB 2011-2012 14
Tipuri de sisteme de realitate virtuala sistemele imersive
cea mai complet form de realitate virtual se obine n contactul participantului cu lumea real este complet
ntrerupt, acestuia permindu-i-se s vad numaiimaginea mediului sintetic, s aud numai sunetelegenerate artificial i s interacioneze numai cu obiectelevirtuale pe care le vede n scen. Acest incluziunetotal a participantului n mediul virtual se obine prindispozitive de afiare (display-uri) montate pe cap(head-mounted display HMD), cti audio(headphones), mnu de date (data glove) imbrcminte de date (data suits).
-
Grafica 3D UPB 2011-2012 15
Domenii de aplicare ale realitatiivirtuale Simulatoare de antrenament, n special simulatoare de zbor, ncare se pot exersa manevre dificile, fr a pune n pericol viaapilotului sau securitatea aparatului de zbor. Proiectare n diferite domenii de activitate (construcii,arhitectur). Proiectantul are posibilitatea s vad rezultateleproiectului sub forma imaginii acestuia n timp real, s observedetaliile mpreun cu alte persoane interesate, i s ia decizii demodificare nainte de construirea prototipului. Vizualizarea tiinific, prin care se obine imaginea diferitelormodele sau fenomene inaccesibile observaiei directe (structuriatomice, fluxuri de informaie, etc). n domeniul medical, n special chirurgie, se pot efectuaexperimente la rece de nvare a diferitelor proceduri, frriscul vieii pacientului. Jocurile distractive i filmele de animaie sunt unele din cele maicunoscute aplicaii de realitate virtual.
-
Grafica 3D UPB 2011-2012 16
Componentele sistemelor de generarea imaginilor Componenta hardware Componenta software (face obiectulprezentului curs)
Sistem de operareBiblioteci grafice
Programul de aplicaieSistem de dezvoltare (toolkit)
Echipamenthardware
Utilizator
-
Grafica 3D UPB 2011-2012 17
Componente software de generare aimaginilor Programe de creare sau redare a scenelorvirtuale (programe de aplicaii) se dezvolt pe baza unor sisteme de dezvoltare(toolkit-uri) sau direct, prin utilizarea unor bibliotecigrafice care asigur interfaa cu echipamentulhardware prin intermediul driverelor sistemului deoperare
-
Grafica 3D UPB 2011-2012 18
Componente software de generare aimaginilor Sisteme de dezvoltare
sunt de cele mai multe ori orientate ctre aplicaiei prevd un set de funcii de nivel nalt carepermit crearea unui anumit tip de aplicaie.
de exemplu, exist toolkit-uri pentru generareaobiectelor i a scenelor virtuale (3d Studio,Autocad, AC3d, Sense8, Designer Workbench,etc), toolkit-uri pentru redarea imaginii scenelorvirtuale (Performer, EasyScene, browserCosmoPlayer, etc).
-
Grafica 3D UPB 2011-2012 19
Componente software de generare aimaginilor Biblioteci grafice
sunt pachete de funcii care asigur interfaa programului de aplicaie (creatdirect sau prin intermediul unui toolkit care apeleaz funciile bibliotecii) cuechipamentele hardware ale sistemului grafic. bibliotecile grafice cele mai generale sunt bibliotecile grafice careimplementeaz un anumit standard n definirea funciilor de acces laechipamentele hardware. Cele mai cunoscute biblioteci grafice suntOpenGL, Direct3D, QuickDraw, care sunt implementate n numeroasesisteme grafice. biblioteci grafice cum sunt OpenGL sau Direct3D asigur accesul la funciigrafice adaptate i optimizate pentru dispozitivele grafice disponibile alesistemului. In curs accentul se va ndrepta ctre prezentarea metodelor debaz de generare a imaginilor i a modului n care acestea se pot aplicafolosind limbaje i biblioteci grafice de nivel nalt. programele grafice propuse n continuare se prezint sub forma de cod C,C++ i, uneori, pseudocod asemntor limbajului C. Biblioteca graficOpenGL este folosit intens, datorit portabilitii i disponibilitii acesteia naproape toate calculatoarele, de la calculatoare PC pn la staii graficeputernice, sub un numr mare de sisteme de operare i apelabil dinnumeroase sisteme de dezvoltare (toolkit).
-
Grafica 3D UPB 2014-20015 1
GRAFICA 3D
Valentin Stoica
-
Grafica 3D UPB 2014-20015 2
Sisteme de referinta tridimensionale coordonate cilindriceP(, , z)
coordonate sfericeP(r, , )
coordonate cartezieneP(x, y, z)
-
Grafica 3D UPB 2014-20015 3
Sisteme de coordonate carteziene Sistem de referin universal
este sistemul de coordonate cartezian n care sunt definitetoate obiectele scenei virtuale
Se definete prin originea O i trei axeperpendiculare, Ox, Oy i Oz, orientate dup regulaminii drepte sau dup regula minii stngi
y
x
z
Ox
z
y
O
(a) (b)
(a) Sistem de coordonate orientat dup regulaminii drepte (sistem de coordonate drept)
(b) Sistem de coordonate orientat dup regulaminii stngi
-
Grafica 3D UPB 2014-20015 4
Sisteme de coordonate carteziene Un punct P n spaiul tridimensional se reprezint n
sistemul de referin cartezian printr-un tripet de valoriscalare x, y, z, ce reprezint componentele vectorului depoziie OP pe cele trei axe de coordonate
n notaia matriceal un punct n spaiul tridimensional sepoate reprezenta printr-o matrice linie sau coloan:
sau
Convenia de reprezentare matematic folosita debiblioteca grafic OpenGL este cea de matrice coloanpentru un punct n spaiul tridimensional
zyxP
zyx
P
-
Grafica 3D UPB 2014-20015 5
Modele de culoare Modelul RGB
culoarea este reprezentat printr-un triplet de culoriprimare, rou (red) verde (green), albastru (blue). spaiul de reprezentare a tuturorculorilor n modelul RGB este uncub ntr-un sistem de coordonatecu axele notate Rou (Red), Verde(Green), Albastru (Blue) C(r,g,b) = rR + gG + bB
Modelul RGBA cea de-a patra component () indic transparenasuprafeei:
= 1suprafa opac = 0 suprafa complet transparent
Albastru
Alb
Magenta
Rosu
Verde
Cian Galben
Negru
-
Grafica 3D UPB 2014-20015 6
Modelul RGB
-
Grafica 3D UPB 2014-20015 7
Modele de culoare Modelul HSV
transformare neliniar a spaiului RGB, prin care culorilesunt specificate prin componentele: nuan (hue), saturaie(saturation) i valoare (value).
Spaiul culorilor n modelul HSVeste o piramid hexagonal ntr-unsistem de coordonate polare HVS
V
SH
Cian
Verde
Rou
GalbenAlb
Negru
Albastru Magenta
-
Grafica 3D UPB 2014-20015 8
Modelarea obiectelor Proprietile obiectelor tridimensionale ce semodeleaz n aplicaiile grafice se pot mpri ndou categorii:
forma solide deformabile
aspect Modelarea solidelor
o tehnic de proiectare, vizualizare i analiz a modului ncare obiectele reale se reprezint n calculator modelare prin:
suprafa de frontier (modelarea poligonal, modelarea prinreele de petice parametrice) volum (modelarea prin compunerea obiectelor, modelarea prindivizare spaial)
-
Grafica 3D UPB 2014-20015 9
Metodele de modelare si reprezentare a obiectelor Modelarea poligonal: obiectele sunt
aproximate printr-o reea de fee care suntpoligoane planare.
-
Grafica 3D UPB 2014-20015 10
Metodele de modelare si reprezentare a obiectelor Modelarea prin reele de petice parametricebicubice (bicubic parametric patches): obiectelesunt aproximate prin reele de elemente spaialenumite petice (patches). Acestea sunt reprezentateprin polinoame cu dou variabile parametrice, nmod obinuit cubice.
Punctede control
-
Grafica 3D UPB 2014-20015 11
Metodele de modelare si reprezentare a obiectelor Modelarea prin compunerea obiectelor(Constructive Solid Geometry - CSG):obiectele sunt reprezentate prin colecii deobiecte elementare (cilindri, sfere, poliedre,etc.). Sfera
+Cub
-
Grafica 3D UPB 2014-20015 12
Metodele de modelare si reprezentare a obiectelor Modelarea prin divizare spaial: obiectelesunt ncorporate n spaiu, prin atribuirea uneietichete fiecrui element spaial, n funcie deobiectul care ocup elementul respectiv.
-
Grafica 3D UPB 2014-20015 13
Modelarea poligonala a obiectelor Forma clasic de modelare a obiectelor folosit n
grafica pe calculator: uurina n modelare posibilitatea de redare rapid a imaginii obiectelor
Reprezentarea poligonal: un obiect tridimensional este compus dintr-o colecie de
fee, fiecare fa fiind o suprafa plan reprezentat printr-un poligon
-
Grafica 3D UPB 2014-20015 14
Reprezentarea poligoanelor Poligon:
o regiune din plan mrginit de o colecie finit desegmente de dreapt care formeaz un circuit nchissimplu. Fie n puncte n plan (v0, v1, ,vn1) i n segmentede dreapt (e0 = v0v1, e1 = v1v2, . en1 = vn1v0) careconecteaz perechi de puncte succesive n ordineciclic, deci inclusiv conexiunea ntre ultimul punct iprimul punct din list. Aceste segmente mrginescun poligon, dac i numai dac:
intersecia fiecrei perechi de segmente adiacente nordinea ciclic este un singur punct, coninut de ambelesegemente: ei ei+1 = vi+1, pentru oricare i = 0,, n1. segmente neadiacente nu se intersecteaz: ei ej = ,pentru orice j i+1.
-
Grafica 3D UPB 2014-20015 15
Reprezentarea poligoanelor vi - vrfurile poligonului (vertices) ei - muchii (sau laturi) ale poligonului Un poligon:
conine n vrfuri i n muchii muchiile sunt orientate, astfel nct formeaz un ciclu(circuit nchis) = orientare consistent (dac se parcurgmuchiile n sensul lor de definiie, interiorul poligonului estevzut ntotdeauna n partea stng/dreapt).
v4v3
v2
v1 v0e0
e1
e2
e3
e4
-
Grafica 3D UPB 2014-20015 16
Reprezentarea poliedrelor Modelarea i reprezentarea prin suprafaa de frontier =
obiectele sunt aproximate prin poliedre i modelul lor estereprezentat prin suprafaa poliedrului, compus dintr-o coleciede poligoane
Suprafaa de frontier a unui poliedru conine trei tipuri deelemente geometrice: vrfurile (punctele), care sunt zero-dimensionale, muchiile (segmentele), care sunt unidimensionalei feele (poligoanele), care sunt bidimensionale
Fete poligonale
Muchii
Vrfuri
-
Grafica 3D UPB 2014-20015 17
Implementarea modelului poligonal Printr-o list de poligoane (vector, list nlnuit,
etc.). ntreaga informaie referitoare la forma unui obiect
este compus din liste de coordonate ale vrfurilor,la care se mai adaug i alte informaii geometricenecesare n redare (de exemplu, normalele lasuprafee).
Forma unui obiect modelat prin reea de poligoanepoate fi reprezentat ca un vector de fee, fiecarefa fiind un vector de vrfuri, fiecare vrf fiind unvector de trei coordonate n virgul flotant
-
Grafica 3D UPB 2014-20015 18
Implementarea modelului poligonal Exemplu: cub
double CubeFaces[6][4][3] = {{{-1,-1,-1}, // fata 0{ 1,-1,-1},{ 1,-1, 1},{-1,-1, 1}},{{-1, 1, 1}, // fata 1{ 1, 1, 1},{ 1, 1,-1},{-1, 1,-1}},{{-1,-1, 1}, // fata 2{ 1,-1, 1},{ 1, 1, 1},{-1, 1, 1}},{{ 1,-1,-1}, // fata 3{-1,-1,-1},{-1, 1,-1},{ 1, 1,-1}},{{ 1,-1, 1}, // fata 4{ 1,-1,-1},{ 1, 1,-1},{ 1, 1, 1}},{{-1,-1, 1}, // fata 5{-1, 1, 1},{-1, 1,-1},{-1,-1,-1}}
}; implementare ineficient deoarecefiecare vrf este prelucrat de trei ori,pentru fiecare fa adiacent acestuia
-
Grafica 3D UPB 2014-20015 19
Implementarea modelului poligonal Exemplu mai eficient: cub
double CubeCoords[8][3]={{-1,-1, 1},{ 1,-1, 1},{ 1,-1,-1},{-1,-1,-1},{-1, 1, 1},{ 1, 1, 1},{ 1, 1,-1},{-1, 1,-1}
};int CubeIndexFace[6][4]={
{3, 2, 1, 0},{4, 5, 6, 7},{0, 1, 5, 4},{2, 3, 7, 6},{1, 2, 6, 5},{0, 4, 7, 3}
};
-
Grafica 3D UPB 2014-20015 20
Reprezentarea poliedrelor O reea de poligoanepoate s reprezinte: suprafaa de frontiernchis a unui solid
suprafaa deschis,necesar n anumitesituaii de modelare, cumeste suprafaa terenuluisimulat ntr-o scenvirtual
-
Grafica 3D UPB 2014-20015 21
Reprezentarea poliedrelor Tipuri de reprezentare:
reprezentare ca suprafa(poligoane pline)
reprezentare prin conturcadru de srm(wireframe)
-
Grafica 3D UPB 2014-20015 22
Reprezentarea poliedrelor Precizia de reprezentare a modelului
diferena dintre suprafaa obiectului i feelepoligonale prin care este aproximat
numrul mare de poligoane = precizia dereprezentare mai bun = cerine de calcul sporite
16x16 poligoane 32x32 poligoane 64x64 poligoane
-
Grafica 3D UPB 2011-2012 1
GRAFICA 3D
Valentin Stoica
-
Grafica 3D UPB 2011-2012 2
Metode de simplificare a datelor Numr mare de poligoane => volum mare dedate => cerine ridicate de stocare iprocesare
Metode de aproximare = simplificarea(rafinarea) datelor
-
Grafica 3D UPB 2011-2012 3
Metode de simplificare a datelor Tehnica de simplificare direct prinreducerea uniform a numrului de poligoanede reprezentare a obiectului nu se poate controlaprecizia de reprezentare=> inacceptabil
-
Grafica 3D UPB 2011-2012 4
-
Grafica 3D UPB 2011-2012 5
Metode de simplificare a datelor Modelarea adaptiv
pstreaza o precizie dereprezentare constant
dimensiunea feelorpoligonale variaz n funciede curbura suprafeei
n prile cu curburpronunat sunt introdusemai multe poligoane peunitatea de suprafa
-
Grafica 3D UPB 2011-2012 6
Metode de simplificare a datelor Modelarea cu nivele de detaliu multiple(levels of detail- LOD) se selecteaz nivelul de detaliu corespunztor, nfuncie de poziia obiectului fa de punctul deobservare
-
Grafica 3D UPB 2011-2012 7
(a)
(b)
Modelul avionului F-16 pe dou nivele de detaliu diferite:(a) 2413 poligoane; (b) 286 poligoane.
-
Grafica 3D UPB 2011-2012 8
Generarea modelului poligonal Generarea modelului din descriereamatematic a obiectului
Generarea modelului obiectului prin baleierespaial
Generarea modelului pe baza unei mulimi depuncte aparinnd suprafeei de frontier
-
Grafica 3D UPB 2011-2012 9
Generarea modelului din descriereamatematic Se genereaz reeaua de poligoane deaproximare a obiectelor care au o descrierematematic cunoscut Elipsoid
Hiperboloid
Paraboloid eliptic
01czbyax 222222
01czbyaxsi01czbyax
222222222222
zbyax 2222
-
Grafica 3D UPB 2011-2012 10
Generarea modelului din descriereamatematic
-
Grafica 3D UPB 2011-2012 11
Generarea modelului obiectului prinbaleiere spatial Prin deplasarea (sweeping) unei suprafeegeneratoare de-a lungul unei curbe oarecare
-
Grafica 3D UPB 2011-2012 12
Generarea modelului pe baza unei multimi depuncte apartinnd suprafetei de frontier Modelare a obiectelor tridimensionale pebaza unei mulimi de puncte distribuiteuniform sau neuniform pe suprafaaobiectelor colecie de puncte
Proiectare (CAD) Scanare, hari digitale
construirea reelei de poligoane care saproximeze obiectul cu precizia dorit triangularizare
-
Grafica 3D UPB 2011-2012 13
Triangularizarea Suprafata esteaproximata printr-ocolectie detriunghiuri adiacente
Triangularizarea punctelor obinute pebaza unei grile uniforme
Triangularizarea cu diferite grade de aproximare
-
Grafica 3D UPB 2011-2012 14
Transformari geometrice in spatiultridimensional Transformari geometrice primitive:
translaia - modific localizarea obiectului rotaia - modific orientarea scalarea - modific dimensiunea obiectului
-
Grafica 3D UPB 2011-2012 15
Translatia
Transformarea prin care toate punctele sedeplaseaz n aceeai direcie i cu aceeaidistan ntre punct i transformatul su
Descris printr-un vector de translaie T,avnd componentele tx, ty, tz pe cele trei axede coordonate
-
Grafica 3D UPB 2011-2012 16
Translatia P(x,y,z) P(x,y,z), unde
Notatia matriceala:
, unde ; deci:
zyx
tz'zty'ytx'x
T+P=P'
zyx
ttt
T
zyx
ttt
zyx
'z'y'x
-
Grafica 3D UPB 2011-2012 17
Scalarea
Transformarea prin care se modificcoordonatele tuturor punctelor unui obiectfolosind factorii de scal sx, sy, respectiv sz pecele trei axe de coordonate
P(x,y,z) P(x,y,z), unde
zyx
sz'zsy'ysx'x
-
Grafica 3D UPB 2011-2012 18
Scalarea Notatia matriceala:
deci
zy
x
s000s000s
S
,PSP'
zyx
s000s000s
'z'y'x
zy
x
-
Grafica 3D UPB 2011-2012 19
Rotatia
Rotaia cu un unghi n raport cu o ax D este o transformareprin care orice punct P care nu este situat pe dreapta D setransform ntr-un punct P astfel nct P i P sunt situate ntr-unplan perpendicular pe dreapta D, unghiul PIPeste egal cu , iarmodulele |IP| i |IP| sunt egale (punctul I este intersecia dintredreapta D i planul ).
Toate punctele dreptei D sunt fixe i numai ele sunt puncteinvariante ale transformrii. Transformarea de rotaie n raport cuo ax oarecare se descompune ntr-o succesiune de maximumtrei transformri de rotaie n raport cu axele de coordonate alesistemului de referin.
-
Grafica 3D UPB 2011-2012 20
Rotatia Rotaia n raport cu axa z cu un unghi transformun punct P(x,y,z) n punctul P(x,y,z), ambele aflaten planul perpendicular pe axa z
uP
P
I
y
xO
z
P
P usinyucosx
)usin('y)ucos('x
cosysinx)ucossincosu(sin'ysinycosx)sinusincosu(cos'x
-
Grafica 3D UPB 2011-2012 21
Rotatia Notatia matriceala:
, deci
1000cossin0sincos
)(ZR
PRP Z' =
zyx
1000cossin0sincos
'z'y'x
-
Grafica 3D UPB 2011-2012 22
Transformari geometrice in spatiultridimensional
Translaia
Scalarea
Rotaia
zyx
ttt
zyx
'z'y'x
zyx
1000cossin0sincos
'z'y'x
zyx
s000s000s
'z'y'x
zy
x
-
Grafica 3D UPB 2011-2012 23
Sisteme de coordonate omogene Introdus pentru reprezentarea unitar icombinarea transformrilor geometricespaiale
Un sistem de coordonate cu patru dimensiuni
P(x,y,z) P(X,Y,Z,w), unde pentru w 0
zwZywYxwX
-
Grafica 3D UPB 2011-2012 24
Sisteme de coordonate omogene P(X,Y,Z,w) P(x,y,z) unde
w/Zzw/Yyw/Xx
-
Grafica 3D UPB 2011-2012 25
Sisteme de coordonate omogene n coordonate omogene, dou puncte
i sunt egale dac:
n sistemele de coordonate omogene, toatematricele de transformri sunt de dimensiune4 4 i toate operaiile de transformrigeometrice se pot exprima prin produse dematrice.
221122112211 w/Zw/Zsiw/Yw/Y,w/Xw/X )w,Z,Y,X(P 11111 )w,Y,Y,X(P 22222
-
Grafica 3D UPB 2011-2012 26
Translatia n coordonate omogene
; rezult
In coordonate carteziene
1000t100t010t001
)t,t,t(zyx
zyxT
PTP'
wZYX
1000t100t010t001
'w'Z'Y'X
zyx
w'wwtZ'ZwtY'YwtX'X
zyx
'w/'Z'z'w/'Y'y'w/'X'x
-
Grafica 3D UPB 2011-2012 27
Scalarea fat de origine n coordonate omogene
; rezulta
In coordonate carteziene
10000s0000s0000s
)s,s,s(z
yx
zyxS
SPP'
wZYX
10000s0000s0000s
'w'Z'Y'X
zy
x
w'wZs'ZYs'YXs'X
zyx
'w/'Z'z'w/'Y'y'w/'X'x
-
Grafica 3D UPB 2011-2012 28
Transformrile de rotatie n coordonate omogene Rotaia n raport cu axa x cu un unghi
; rezulta
10000cossin00sincos00001
)(XR
PRP' X
wZYX
10000cossin00sincos00001
'w'Z'Y'X
w'wcosZsinY'ZsinZcosY'Y
X'X
-
Grafica 3D UPB 2011-2012 29
Transformrile de rotatie n coordonate omogene
Rotaia n raport cu axa y cu un unghi
; rezulta
10000cos0sin00100sin0cos
)(YR
PRP' Y
wZYX
10000cos0sin00100sin0cos
'w'Z'Y'X
w'wcosZsinX'Z
Y'YsinZcosX'X
-
Grafica 3D UPB 2011-2012 30
Transformrile de rotatie n coordonate omogene
Rotaia n raport cu axa z cu un unghi
; rezulta
1000010000cossin00sincos
)(ZR
PRP' Z
wZYX
100001000000
wZYX
cossinsincos
''''
w'wZ'Z
cosYsinX'YsinY-cosX'X
-
Grafica 3D UPB 2011-2012 31
Transformari primitive in coordonate omogene Transformrile geometrice elementare sunttransformri liniare, prin care liniile drepte isuprafeele plane sunt transformate n liniidreapte, respectiv suprafee plane
pentru transformarea unui obiect tridimensionaleste suficient s se transforme toate vrfurileacestuia i s se pstreze relaiile topologice ntrevrfurile transformate, aceleai cu cele ntrevrfurile iniiale
Transformrile mai complexe ale obiectelor nspaiu se pot defini prin compunerea maimultor transformri primitive
-
Grafica 3D UPB 2011-2012 1
GRAFICA 3D
Valentin Stoica
-
Grafica 3D UPB 2011-2012 2
Transformari primitive in coordonate omogene
PTP'
PRP' ZPRP' YPRP' X
SPP'
-
Grafica 3D UPB 2011-2012 3
Compunerea transformarilor geometrice Compunerea mai multor tranformri elementare
pentru obinerea unei transformri complexe seobine prin executarea succesiv a produsuluifiecrei matrice de transformare cu matricea dereprezentare a punctului iniial sau rezultat dintr-otransformare precedent
-
Grafica 3D UPB 2011-2012 4
Compunerea transformarilor geometrice
Obiectul iniial: un cub cu latura de dou uniti, amplasat cucentrul su n centrul sistemului de referin i laturile orientate ndireciile axelor de coordonate+ Scalare cu factorii de scar 2, 2, 2+ Rotaie cu un unghi de 30 grade n raport cu axa z+ Translaie cu un vector de translaie cu componente 8,0,0
=> un nou obiect cub, definit n acelai sistem de referin,dar cu alte dimensiuni i localizare
PP
-
Grafica 3D UPB 2011-2012 5
Compunerea transformarilor geometrice Transformarea efectuat asupra cubului dinfigura de mai sus se obine prin aplicareasuccesiv a trei transformri geometriceelementare (scalare, rotaie i translaie)asupra fiecrui punct (vrf) al cubului
Pentru un vrf al cubului, reprezentat prinmatricea coloan P, succesiunea detransformri este:
Scalarea: P1 = S PRotaia n raport cu axa z: P2 = RZ P1= RZ(S P)Translaia: P = T P2 = T(RZ(S P)) = (TRZS) P=> P = TRZS P = M P
-
Grafica 3D UPB 2011-2012 6
Compunerea transformarilor geometrice M = TRZS P
P(1,1,1,1) P(8.732, 3.732,1,1)
1000020000200002
1000010000866.05.0005.0866.0
1000010000108001
SRTM Z
1000020000732,11801732.1
M
12732.3732.8
1111
1000020000732.11801732.1
PMP'
-
Grafica 3D UPB 2011-2012 7
Compunerea transformarilor geometrice Ordinea de compunere a matricelor detransformare este definitorie pentru rezultatultransformrii (produsul matricelor nu estecomutativ)
Convenia de reprezentare a punctelor nspaiu prin matrice coloan impune ordineade nmulire numit postmultiplicare (saumultiplicare la dreapta) a matricelor detransformare: se nmulete matricea de transformare curentcu matricea transformrii urmtoare
-
Grafica 3D UPB 2011-2012 8
Compunerea transformarilor geometrice Convenia de reprezentare a punctelor n spaiu prinmatrice coloan impune ordinea de nmulirenumit postmultiplicare (sau multiplicare la dreapta)a matricelor de transformare: se nmulete matricea de transformare curent cu
matricea transformrii urmtoare Ordinea de aplicare a transformrilor este de la
dreapta la stnga din succesiunea de matrice aleunei compuneri: dac un punct se transform prin aplicarea succesiv a
transformrilor definite prin matricele M1, M2,., Mn,matricea compus de transformare este M = Mn . M2 M1
-
Grafica 3D UPB 2011-2012 9
Compunerea transformarilor geometrice Convenia de reprezentare a punctelor n spaiu prinmatrice linie impune ordinea de nmulire numitpremultiplicare (sau multiplicare la stnga) amatricelor de transformare: se nmulete matricea de transformare urmtoare cu
matricea transformrii curente Ordinea de aplicare a transformrilor este de la
stnga la dreapta din succesiunea de matrice aleunei compuneri: dac un punct se transform prin aplicarea succesiv a
transformrilor definite prin matricele S1, S2,.Sn, matriceacompus de transformare este S = S1 S2. Sn
-
Grafica 3D UPB 2011-2012 10
Compunerea transformarilor geometrice Orice matrice de transformare elementar nconvenia de reprezentare prin matrice linie aunui punct n spaiul tridimensional estetranspusa matricei corespunztoare detransformare definite n convenia dereprezentare prin matrice coloan a punctului
1ttt010000100001
wZYX'w'Z'Y'Xzyx
-
Grafica 3D UPB 2011-2012 11
Exemple de compunere a transformarilor geometrice Rotaie complet specificat prin trei rotaii fa de axele
sistemului de coordonate
Transformarea complex a unui obiect prin combinareamai multor transformri elementare (scalri, rotaii,translaii)
10000rrr0rrr0rrr
)()()(333231232221131211
ZXY RRR=R
1000t'r'r'rt'r'r'rt'r'r'r
z333231y232221x131211
M
Componenta de translaie totalComponenta de rotaie i scalare total
-
Grafica 3D UPB 2011-2012 12
Compunerea transformarilor geometrice
Proprieti importante ale transformrilor geometricecompuse: o transformare geometric compus reprezentat printr-o
matrice de forma M conserv valoarea coordonatei w aunui punct
o transformare geometric compus reprezentat printr-omatrice de forma M este o transformare liniar: liniile drepte i suprafeele plane sunt transformate n linii
dreapte, respectiv suprafee plane pentru transformarea unui obiect tridimensional este suficient
s se transforme toate vrfurile acestuia i s se pstrezerelaiile topologice ntre vrfurile transformate
-
Grafica 3D UPB 2011-2012 13
Transformari inverse Fiind dat o transformare a unui punct P ntr-un punct P definit printr-o matrice detransformare M, transformarea invers, de lapunctul P la punctul P se obine prinnmulirea cu matricea invers, M 1:
1000010000100001
II,MM 1
-
Grafica 3D UPB 2011-2012 14
Transformari inverse Matricea de transformare M se obine printr-un produs de matrice de transformrielementare
Matricea invers M1 se calculeaz prinprodusul n ordine invers a inverselormatricelor elementare componente
IMMMMMM=MMMMM=M
MMM=M
1n121112n11-n1-21-11-
12n
---
-
Grafica 3D UPB 2011-2012 15
Transformari inverse
1000t100t010t001
)t,t,t()]t,t,t([zyx
zyx1zyx TT
10000s/10000s/10000s/1
)s/1,s/1,s/1()]s,s,s([z
yx
zyx1zyx SS
10000cossin00sincos00001
)()]([ 1 XX RR
10000cos0sin00100sin0cos
)()]([ 1 YY RR
1000010000cossin00sincos
)()]([ 1 ZZ RR
-
Grafica 3D UPB 2011-2012 16
Transformarea sistemelor de referinta Transformrile geometrice prezentate pot fiinterpretate ca: transformri ale coordonatelor unei mulimi depuncte (vrfuri) ale obiectelor ntr-un anumitsistem de referin
transformare de schimbare a sistemului dereferin
-
Grafica 3D UPB 2011-2012 17
Transformarea sistemelor de referinta Se consider sistemul de referin Oxyz i un nou sistem de
referin Oxyz, a crui origine O este determinat nsistemul Oxyz prin coordonatele x0,y0,z0 ale centrului O.
Matricea de transformare care descrie poziionarea sistemuluiOxyz relativ la sistemul de referin Oxyz este:
1000zcccycrcxccc
033231303222120312111
M
-
Grafica 3D UPB 2011-2012 18
Transformarea sistemelor de referinta Fie un punct P definit prin coordonatele sale x,y,z n
sistemul de referin Oxyz. Se demonstreaz c n sistemulde referin Oxyz acest punct (notat P) are coordonatelex,y,z, care se obin prin nmulirea matricei (care esteinversa matricei M care definete poziionarea sistemuluiOxyz n sistemul Oxyz) cu matricea P de reprezentare apunctului P n sistemul de coordonate iniial:
Transformarea invers, a unui punct P(x,y,z) dinsistemul de referin Oxyz n punctul P(x,y,z) dinsistemul de referin Oxyz se obine prin nmulire cumatricea de transformare M:
PM=P' 1
MP'=P
-
Grafica 3D UPB 2011-2012 19
Transformarea sistemelor de referinta Exemplu: se consider un sistem de referin Oxyz
i un alt sistem de referin Oxyz care are origineaO(x0,y0,z0) i aceeai orientare a axelor decoordonate ca i sistemul Oxyz.
Poziionarea sistemului de referin Oxyz relativ lasistemul Oxyz este definit de matricea detransformare M; poziionarea sistemului Oxyz relativla sistemul Oxyz este definit de matricea detransformare invers M1:
1000z100y010x001
000
M
1000z100y010x001
000
1M
-
Grafica 3D UPB 2011-2012 20
Transformarea sistemelor de referinta Un punct oarecare P(x,y,z) n sistemul de referinOxyz, se transform n punctul P(x,y,z) n sistemulde referin Oxyz printr-o translaie cu (x0, y0, z0) deci:
O(4,2,0)P(6,3,0)P(2,1,0)
1zyx
1000z100y010x001
1'z'y'x
;000
PMP' 1
x
y
z
Ox'
y'
z'
O'
P(6,3,0)P'(2,1,0)
-
Grafica 3D UPB 2011-2012 21
Transformarea sistemelor de referinta n concluzie, aplicarea unei transformri definite
printr-o matrice M, asupra unei mulimi de punctedefinite ntr-un sistem de referin Oxyz poate fiinterpretat n mai multe moduri: Fiecare punct este modificat i capt o nou poziionare
n sistemul de referin Oxyz, conform cu matricea detransformare M.
Fiecare punct este transformat din sistemul de referininiial Oxyz ntr-un nou sistem de referin, Oxyz, a cruipoziie i orientare relativ la sistemul de referin Oxyz estedescris de matricea M1.
Fiecare punct este transformat din sistemul de referininiial Oxyz ntr-un nou sistem de referin, Oxyz. Poziiai orientarea sistemului Oxyz relativ la sistemul de referinOxyz este descris de matricea M.
-
Grafica 3D UPB 2011-2012 22
Rotatia fat de o ax paralel cu una din axele sistemului dereferint Se consider o dreapt D paralel cu axa z asistemului, care intersecteaz planul Oxy npunctul I(tx,ty,0)
x
y
O txty I
-
Grafica 3D UPB 2011-2012 23
Rotatia fat de o ax paralel cu una din axele sistemului dereferint Transformarea de rotaie a obiectelor fa de axa D
nu poate fi realizat folosind matricea prezentataanterior (rotaia fa de o ax a sistemului decoordonate)
se aplic mai nti tuturor punctelor o transformareajuttoare, translaia cu T(tx,ty,0). Acesttransformare poate fi intrepretat n dou moduri:
A. ca o schimbare a sistemului de referin Oxyz n sistemulOxyz , n care punctul I este transformat n punctulI(0,0,0),
B. ca o modificare a poziiei tuturor punctelor din spaiu princare punctul I este adus n originea sistemului de referinOxyz
-
Grafica 3D UPB 2011-2012 24
Rotatia fat de o ax paralel cu una din axele sistemului dereferintA. Operaiile se continu n noul sistem de referin Oxyz, n
care dreapta D se suprapune peste axa z, deci se poate obinerotaia dorit cu un unghi folosind matricea de rotaie. Dupaceasta, se revine la sistemul de referin iniial Oxyz, printr-otransformare invers, T(tx, ty, 0). Rezult matricea compus derotaie cu unghiul fa de o dreapt paralel cu axa z careinterecteaz planul Oxy n punctul I(tx,ty,0):
)0,t,t()()0,t,t( yxyx TRTR ZD
10000100t010t001
1000010000cossin00sincos
10000100t010t001
yx
yx
DR
10000100
sint)cos1(t0cossinsint)cos1(t0sincos
xyyx
DR
-
Grafica 3D UPB 2011-2012 25
Rotatia fat de o ax paralel cu una din axele sistemului dereferint
x x x
y
O tx
tyI
y
O
IOO
y
x
y
O
OO
y
x
y
O
IO
x
Rotaia fa de o dreapt paralel ca axa z a sistemului de referinconsidernd transformarea sistemelor de referin
-
Grafica 3D UPB 2011-2012 26
Rotatia fat de o ax paralel cu una din axele sistemului dereferintB. Se prezint aceleai transformri succesive necesare pentrurealizarea rotaiei n raport cu o dreapt paralel cu axa z asistemului, considernd c transformarea iniial T(tx,ty,0)transform toate punctele din sistemul de referin Oxyz astfelnct punctul I se suprapune peste originea O. Se remarcfaptul c, n aceast situaie, este doar o diferen deinterpretare, operaiile i rezultatul acestora fiind identic.
x
y
O tx
tyI
y
OIO x x
y
IO
y
O
IO
x
Rotaia fa de o dreapt paralel ca axa z a sistemului dereferin considernd transformarea punctelor.
-
Grafica 3D UPB 2011-2012 27
Scalarea fat de un punct oarecare n spatiu Matricea de scalare fa de un punctoarecare se poate deduce printr-o metodasemntoare celei prezentate anterior, princompunerea a trei transformri elementaredeja definite:1.Se execut o translaie cu T(-xf, -yf, -zf), prin carepunctul fix F se suprapune peste origineasistemului de coordonate
2. Se aplic o transformare de scalare cu matriceaS(sx, sy, sz)
3. Se efectueaz o translaie invers celei aplicatela punctul 1., deci cu matricea T(xf, yf, zf).
-
Grafica 3D UPB 2011-2012 28
Scalarea fat de un punct oarecare n spatiu
1000
)s1(zs00)s1(y0s0)s1(x00s
zfzyfyxfx
FS
)z,y,x()s,s,s()z,y,x( fffzyxfff TSTSF
1000z100y010x001
10000s0000s0000s
1000z100y010x001
fff
zy
x
fff
FS
Matricea de scalare cu factorii de scar (sx, sy, sz)fa de un punct fix din spaiu F(xf, yf, zf):
-
Grafica 3D UPB 2011-2012 29
Transformarea de modelare O scen virtual este compus dintr-un numr oarecare de
obiecte tridimensionale amplasate n diferite poziii n scen.Tehnica de modelare a scenelor de dimensiuni mari (ca numrde obiecte sau ca volum ocupat de scen) se bazeaz peamplasarea modelelor obiectelor tridimensionale n sistemul dereferin universal al scenei virtuale.
Fiecare obiect este modelat ntr-un sistem de referin local(numit i sistem de referin de modelare), prin alegerea celeimai convenabile origini i orientri a axelor de coordonate aleacestuia. De exemplu, un cub se modeleaz cel mai convenabilntr-un sistem de referin ales cu centrul n centrul cubului i cuaxele orientate paralel cu laturile cubului. Dac se presupune clatura cubului este egal cu 2 uniti, atunci coordonatelevrfurilor cubului sunt (1,1,1), (1,1,1), (1,1,1), (1,1,1), (1,1,1), (1,1,1), (1,1,1), (1,1,1).
ce1
-
Slide 29ce1 Curs 5s
cristina, 10/27/2009
-
Grafica 3D UPB 2011-2012 30
Transformarea de modelare Modelul unui obiect, definit n sistemul de referin
local, poate fi instaniat (introdus) n scena virtualprintr-o transformare numit transformare demodelare (sau transformare de instaniere). Maimult, reprezentarea ierarhic a scenelor virtuale pringrafuri aciclice direcionate permite instanierea deun numr oarecare de ori a fiecrui model, folosindmatrice de transformare corespunztoare. Acestaeste modul cel mai frecvent de modelare a scenelorvirtuale, care are suport n formatele i limbajele dedescriere a scenelor virtuale, cum este limbajulVRML.
-
Grafica 3D UPB 2011-2012 31
Transformarea de modelare n modelarea ierarhic a scenelor virtuale, operaia de baz este transformareade modelare prin care toate punctele unui obiect (model tridimensional) sunttransformate din sistemul de referin local ntr-un alt sistem de referin, carepoate fi sistemul de referin universal sau un alt sistem intermediar. Pentrunceput se consider cea mai simpl transformare de modelare, dintr-un sistemde referin local n sistemul de referin universal. n mod obinuit, prima transformare care se aplic modelului este transformareade scalare cu o matrice de scalare S(sx,sy,sz), executat n sistemul dereferin local (fa de originea acestuia), prin care obiectul este adus ladimensiunile dorite ale instanei respective. Poziia unei instane a obiectului n scen se definete printr-o matrice detransformare coninnd submatricea de rotaie R, care definete orientareasistemului de referin local Oxyz fa de sistemul de referin universal Oxyz(al scenei virtuale) i submatricea de translaie T, care definete poziia originiiO(x0,y0,z0) a sistemului de referin local n sistemul universal. Submatricea derotaie R poate fi specificat fie prin cosinuii directori (c11, c12, c13), (c21, c22,c23), (c31, c32, c33) ai axelor sistemului local fa de sistemul de referinuniversal, fie printr-o succesiune de rotaii fa de axele de coordonate alesistemului de referin local:
-
Grafica 3D UPB 2011-2012 32
Transformarea de modelare
sau
Rezult matricea de transformare de modelare(instaniere):
Un punct P al obiectului n sistemul de referinmodel este transformat n punctul PI n sistemul dereferin universal prin instanierea:
10000ccc0crc0ccc
332313322212312111
R )()()( ZXY RRR=R
)ss,s()z,y,x( z,yx000 SRTM I
PMP II =
-
Grafica 3D UPB 2011-2012 33
Sisteme de vizualizare Sistem de vizualizare
o colecie de sisteme de referin, convenii dereprezentare i relaii (matriceale) de transformarecare permit executarea unei succesiuni detransformri avnd ca efect punerea ncoresponden (mapping) a punctelor din sistemulde referin de modelare (modelling coordinatespace) cu puncte ale suprafeei de vizualizare(view surface).
-
Grafica 3D UPB 2011-2012 34
Sisteme de vizualizare ntr-un sistem de vizualizare, generarea imaginii
scenei virtuale este un proces complex care poate fiparcurs prin reprezentri n mai multe sisteme dereferin, fiecare sistem de referin facilitndspecificarea i executarea anumitor operaii:
Transformarede modelare Transformarede observare
Transformarede normalizare
Transformaren ecran 3D
Transformarede rastru
Definireobiecte
Sistemde referin
local
Definire sistemde
referinde observare
Sistemde referinuniversal
Definireproiecie
i volum devizualizare
Sistemde referinde observare
Decupare mprire cuw Calculproiecie
Sistemde referinnormalizat
Sistemde referinecran 3D
Afisareimagine
Sistemde referinimagine
-
Grafica 3D UPB 2011-2012 35
Sisteme de vizualizare Obiectele tridimensionale componente ale scenei sunt modelate
i reprezentate n sisteme de referin locale (sau demodelare), care au originea i orientarea alese cel maiconvenabil pentru reprezentarea obiectelor respective
Pentru construirea scenei, obiectele specificate n sistemul dereferin de modelare sunt instaniate prin aplicarea uneisuccesiuni de transformri geometrice, care constituetransformarea de modelare
Prin transformarea de modelare se obine descrierea obiectelorntr-un sistem de referin unic al scenei virtuale, numit sistemulde referin universal
n sistemul de referin universal mai sunt definite i alteelemente necesare redrii realiste a scenelor, cum sunt surselede lumin sau traiectoriile obiectelor mobile n scen.
-
Grafica 3D UPB 2011-2012 36
Sisteme de vizualizare n sistemul de referin universal se definete un
sistem de referin de observare, care specificpunctul i direcia din care este privit scena.
Imaginea care se red pe display depinde depunctul i direcia din care este observat scena,deci de felul n care este definit sistemul de referinde observare. Transformarea obiectelor dinsistemul de referin universal n sistemul dereferin de observare este numit transformarede observare (sau de vizualizare).
-
Grafica 3D UPB 2011-2012 37
Sisteme de vizualizare n sistemul de referin de observare se poate faceo analogie simpl cu modul n care este privit oscen real prin ochiul uman sau printr-un aparatfotografic (camer): poziia i orientarea sistemului dereferin de observare corespund poziiei i orientriiochiului sau camerei ntr-o scen real. Dintr-un punct de observare dat, numai o parte ascenei poate fi vzut, restul aflndu-se n spatele saun prile laterale ale direciei de observare:
partea vizibil din scen (real sau virtual) este definit cavolum de vizualizare, care, n general, este o piramid (sauun trunchi de piramid) cu centrul n punctul de observare icu direcia dat de direcia de observare. n redarea scenelor,deschiderea unghiular a piramidei de vizualizare definetecmpul de vizualizare (field of view), care este ocaracteristic important a sistemelor grafice.
-
Grafica 3D UPB 2011-2012 38
Sisteme de vizualizare Majoritatea sistemelor grafice afieaz imaginile pe o suprafaplan a unui dispozitiv de afiare (display) astfel c nsuccesiunea operaiilor de vizualizare a obiectelor sau a scenelortridimensionale, este necesar introducerea unei proiecii, careconvertete spaiul tridimensional ntr-o reprezentarebidimensional. n general, proieciile transform spaiul Rn n spaiul Rm, unde m< n Modul n care se realizeaz proiecia obiectelor tridimensionalese definete n sistemul de referin de observare prin maimuli parametri, dintre care cei mai importani sunt:
tipul proieciei planul de vizualizare.
Intersecia dintre planul de vizualizare i piramida de vizualizaredefinete o regiune plan numit fereastr de vizualizare (viewplane window), n care sunt reprezentate toate imaginilebidimensionale ale obiectelor (sau prilor de obiecte) vizibile dinscen.
-
Grafica 3D UPB 2011-2012 39
Sisteme de vizualizare n majoritatea sistemelor de vizualizare, din motivede eficien i precizie a calculelor (care suntexplicate n continuare), transformarea deproiecie se execut n dou etape:
o transformare de normalizare, care este o schimbare asistemului de referin de la sistemul de referin deobservare la sistemul de referin normalizat. Volumulde vizualizare definit n sistemul de referin de observareeste transformat, n sistemul de referin normalizat, ntr-unvolum canonic (n general, un paralelipiped dreptunghic). n sistemul de referin normalizat se executdecuparea obiectelor (clipping), astfel nct obiectelesau prile din obiecte care se afl n afara volumului devizualizare (volumul canonic) sunt eliminate (ignoratepentru operaiile urmtoare de redare, nu terse dinscen).
-
Grafica 3D UPB 2011-2012 40
Sisteme de vizualizare Urmtoarea transformare geometric este transformarea dinsistemul normalizat n sistemul de referin ecrantridimensional, prin care fereastra definit n planul devizualizare este transformat ntr-o regiune corespunztoarezonei de afiare pe display, numit poart (viewport), iarcoordonata z se pstreaz nemodificat. n sistemul de referin ecran 3D se calculeaz coordonateletridimensionale ale punctelor, din coordonatele omogene, prinmprirea cu w, dup care se execut transformarea de rastru. Transformarea de rastru calculeaz mulimea pixelilor careaparin unui segment sau poligon dat prin coordonatele vrfurilor:
spaiul bidimensional continuu al porii de afiare este convertit nspaiul bidimensional discret al imaginii. n general, concomitent cu transformarea de rastru suntexecutate i alte operaii: eliminarea suprafeelor ascunse,umbrirea, texturarea.
-
Grafica 3D UPB 2011-2012 1
GRAFICA 3D
Valentin Stoica
-
Grafica 3D UPB 2011-2012 2
Sisteme de referina de vizualizare
zv
xv
yv
Ov
sistem dereferinuniversal
sistem dereferin deobservare
z
y
x
zz
y
z
x
y
z
x
y
z
-
Grafica 3D UPB 2011-2012 3
Transformarea de observare sistem de referin universal sistem de referin deobservare Transformare analog cu poziionarea unei camere foto/video,prin care se observ o anumit zon din scena virtual n sistemul de referin universal sunt reprezentate toateobiectele (modelele) scenei virtuale n fiecare cadru al imaginii (frame), este generat imagineaacelor obiecte din scen care sunt vizibile din punctul deobservare curent (view point) Exemplu (simulatoare, aplicaii n arhitectur, etc.) :
scena virtual reprezentat n sistemul de referin universal estemeninut ntr-o poziie constant (cel mult existnd anumiteobiecte mobile n scen), observatorul este cel care i modific poziia i orientarea, i nfuncie de acestea se red imaginea corespunztoare pe ecran direcia de observare a scenei este direcia axei z a sistemului dereferin de observare
-
Grafica 3D UPB 2011-2012 4
Transformarea de observare Localizarea i orientarea sistemului dereferin de observare OVxVyVzV n raport cusistemul de referin universal Oxyz poate fidescris printr-o matrice de transformare Mde forma general:
1000zcccycccxccc
10000ccc0ccc0ccc
1000z100y010x001
V332313V322212V312111
332313322212312111
VVv
VVRTM
-
Grafica 3D UPB 2011-2012 5
Sisteme de vizualizare TV este matricea de translaie a sistemului dereferin de observare n raport cu sistemul dereferin universal; xVyVzVsunt coordonatelepunctului de observare OV n sistemul Oxzy.
RV reprezint orientarea sistemului de referin deobservare fa de sistemul de referin universal: c11, c12, c13 - cosinuii directori ai axei OVxV fa de axele
Ox, Oy, respectiv Oz c21, c22, c23 - cosinuii directori ai axei OVyV fa de axele
Ox, Oy, respectiv Oz c31, c32, c33 - cosinuii directori ai axei OVzV fa de axele
Ox, Oy, respectiv Oz
-
Grafica 3D UPB 2011-2012 6
Sisteme de vizualizare Un punct oarecare P(x,z,y) din sistemul Oxyzse transform n punctul PV(xV,yV,zV) nsistemul de referin observator prin nmulirecu matricea invers, deci:
unde MV este inversa matricei de localizare asistemului de referin de observare relativ lasistemul de referin universal, adic
PMPTRPMP V1V1V1V
1V MM
-
Grafica 3D UPB 2011-2012 7
Transformarea de proiectie Proiecie - transformarea prin care se micsoreazadimensionalitatea 3D 2D.
Pentru o transformare de proiectie din spatiul 3D inspatiul 2D se definesc: planul de proiectie centrul de proiectie
Proiecia unui obiect tridimensional pe un plan(numit plan de proiecie sau plan de vizualizare view plane) este format din mulimea punctelor deintersecie ntre acest plan i dreptele numiteproiectori, care pornesc dintr-un punct fix numitcentru de proiecie i trec prin fiecare punct alobiectului
-
Grafica 3D UPB 2011-2012 8
Transformarea de proiectie n funcie de distana centrului de proiecie fa de planul de
proiecie, proieciile plane se clasific n: proiecie perspectiv - centrul deproiecie se afl la distan finitfa de planul de vizualizare
red cel mai bine efectulde descretere a dimensiunilorobiectelor odat cu cretereadistanei acestora fa de observator
proiecie paralele - centrul deproiecie este la infinit; proiectoriisunt drepte paralele i au o direciecomun, numit direcie de proiecie
X
A
B
B
A
A
BB
A
Directie deproiectie
Directie deproiectie
Planul deproiectie
-
Grafica 3D UPB 2011-2012 9
Proiectia paralela centrul de proiecie este la infinit, iar toate dreptele deproiecie sunt paralele ntre ele, avnd o direcie numit direciade proiecie imaginea rezultat nu ofer informaii asupra distaneiobiectelor n scen proiecie ortografic: planul deproiecie al unei proiecii paralelepoate fi perpendicular pe direciade proiecie
proiecie oblic: planul deproiecie poate avea o nclinareoarecare fa de direcia de proiecie
A
BB
A
A
BB
A
Directie deproiectie
Directie deproiectie
Planul deproiectie
-
Grafica 3D UPB 2011-2012 10
Proiectia paralela Matricea de transformare de proiecieortografic n planul z = 0 are urmtoareaexpresie:
un punct P(x,y,z) se transform n punctulP(x,y,0), care are aceleai coordonate x i y,iar z are valoarea zero:
P(x,y,z) P(x, y, 0)
1000000000100001
ZP
-
Grafica 3D UPB 2011-2012 11
Proiectia paralela
1000010000100000
XP
1000010000000001
YP
1000000000100001
ZP
Proieciile ortografice sunt folosite frecvent ndesenul tehnic
-
Grafica 3D UPB 2011-2012 12
Proiectia perspectiva Proiecia perspectiv se poate defini pornind de la sistemul deobservare considerat ca un sistem de referin stng:
centrul de proiecie se fixeaz n centrul sistemului de referin deobservare OV direcia de observare (de privire) este n sensul pozitiv al axeiOVzV planul de vizualizare este un plan perpendicular pe axa OVzV, ladistana d fa de centru
yV
zVOV
xV
P
P
A
Sistem de referint de observare stng
ByV
yP
zVd
yV
zVOV
xV
P
P
A
Sistem de referint de observare drept
ByV
yP
zVdzV
Directia de observare Directia de observare
-
Grafica 3D UPB 2011-2012 13
Proiectia perspectiva Punctul P(xV,yV,zV) n sistemul de referin deobservare se proiecteaz n punctulP(xP,yP,zP), aflat la intersecia dreptei OVP cuplanul de vizualizare. Din triunghiurileasemenea OVPA i OVPB, rezult:
VVP z
ydy VVP z
xdx
-
Grafica 3D UPB 2011-2012 14
Proiectia perspectiva n notaia matriceal:
0d/100010000100001
PM
VVVV
PPPP
wZYX
0d/100010000100001
wZYX
PM=P' P
d/ZwZZYYXX
VPVPVPVP
dw/ZzzydZ/Ydw/YyzxdZ/Xdw/Xx
PPPVVVVPPPVVVVPPP
,
i
-
Grafica 3D UPB 2011-2012 15
Proiectia perspectiva Proiecia perspectiv necesit o mprire acoordonatelor x i y cu distana z nproiecia perspectiv imaginea unui obiecteste cu att mai mic cu ct se afl ladistan mai mare de punctul de observare
-
Grafica 3D UPB 2011-2012 16
Proiectia perspectiva Sistemul de proiecie definit anterior este unulsimplu:
toate obiectele din scen sunt proiectate pe planul devizualizare are mai multe inconveniente i nu poate fi folosit dect naplicaii foarte simple, n care se proiecteaz obiecte aflatetot timpul n cmpul de observare
Transformarea de proiecie perspectiv este otransformare costisitoare: necesit operaii de mprire timp de calcul ridicat, daceste executat prin program, sau circuite complexe, daceste implementat hardware se execut pentru toate obiectele scenei, inclusiv pentrucele care nu sunt vizibile, deci nu sunt reprezentate pedisplay i nu necesit coordonatele n planul de vizualizare
-
Grafica 3D UPB 2011-2012 17
Sistem de referinta normalizatTransformarea de normalizare Pentru redarea eficient a scenelor tridimensionale,este necesar definirea unui volum de vizualizare(view volume), cunoscut sub numele de piramidade vizualizare sau trunchiul de piramid devizualizare (frustum): trunchiul de piramid de vizualizare se definete n
sistemul de referin de observare n forma cea mai simpl, trunchiul de piramid de
vizualizare este mrginit de patru plane laterale care trecprin punctul de observare OV i de dou planeperpendiculare pe axa OVzV, planul apropiat (near) pe carese execut proiecia, i planul deprtat (far)
-
Grafica 3D UPB 2011-2012 18
Volumul de vizualizare
zVxV
yV
OV
zV = f
zV=d
xV = g zV/d
yV=h zV/d
AB
D C
Directia de observare
Definirea trunchiului de piramid de vizualizare (frustum)n sistemul de referint de observare stng.
gh
-
Grafica 3D UPB 2011-2012 19
Volumul de vizualizare Intersecia dintre cele patru plane laterale i planul de vizualizare(care, n aceast definiie, este i planul apropiat de vizibilitate)determin o suprafa dreptunghiular ABCD n planul devizualizare n care vor fi proiectate toate obiectele vizibile ale scenei fereastra de vizualizare (view plane window) Ecuaiile celor ase plane ale trunchiului de piramid regulat sunt:
unde:2g dimensiunea laturii orizontale a ferestrei de vizualizare (latura AB)2h dimensiunea laturii verticale a ferestrei de vizualizare (latura BC)d distana planului de vizualizare i a planului apropiatf distana planului deprtat.
fzdz
dzhydzgx
VV
VVVV
-
Grafica 3D UPB 2011-2012 20
Volumul de vizualizare Semnificaia volumului de vizualizare este:
dintre toate obiectele din scena virtual sunt vizibile iredate n fereastra de vizualizare numai acele obiecte saupri din obiecte care sunt cuprinse n acest volum
Trunchiul de piramid de vizualizare definete nacest fel i volumul de decupare, operaie care seexecut ntr-unul din sistemele de referin care sedefinesc n cadrul transformrii de proiecie -sistemul de referin normalizat (sistem dereferin canonic)
-
Grafica 3D UPB 2011-2012 21
Sistem de referinta normalizatTransformarea de normalizare Sistemul de referin normalizat este un sistem de coordonatetridimensional n care trunchiul de piramid de vizualizare setransform ntr-un volum canonic, care, n general, este unparalelipiped dreptunghic Pentru sistemul de proiecie definit n acest paragraf, volumulcanonic este un paralelipiped dreptunghic cu latura bazei egalcu 2 i nlimea 1 (dup axa zN) Permite abordarea transformrii de proiecie perspectiv n douetape:
o transformare din sistemul de referin de observare n sistemulde referin normalizat (numit transformare de normalizare) calculul proieciei prin mprirea cu w a coordonatelor omogene
ntre cele dou etape ale transformrii de proiecie perspectivse execut o operaie important n grafica tridimensional -decuparea obiectelor relativ la volumul de vizualizarenormalizat (volumul canonic).
-
Grafica 3D UPB 2011-2012 22
Transformarea de normalizare Cerine ce se impun pentru transformarea
de normalizare (transformarea de lasistemul de referin de observare lasistemul de referin normalizat):1. se normalizeaz coordonata zN, care reprezint
adncimea, astfel nct s se obin precizie maxim noperaiile de comparaie a adncimii punctelor.
2. liniile din sistemul de referin observator trebuie s setransforme n linii n sistemul de referin normalizat.
3. suprafeele plane din sistemul de referin observatortrebuie s se transforme n suprafee plane n sistemulde referin normalizat.
-
Grafica 3D UPB 2011-2012 23
Transformarea de normalizare aceste cerine sunt satisfcute de transformarea
unde a i b sunt constante ce se determin dinurmtoarele condiii:
se alege b < 0, astfel ca zN s creasc atunci cnd cretezV. Aceast condiie conserv noiunea intuitiv deadncime: un punct are coordonata zN cu att mai mare cuct este mai departe de observator.
se normalizeaz domeniul de variaie al lui zN, astfel cadomeniul zV[d,f] s se transforme n domeniul zN[0,1].
VN b/z+a=z
-
Grafica 3D UPB 2011-2012 24
Transformarea de normalizare Relaiile care definesc transformarea denormalizare sunt:
Coordonatele omogene ale unui punct nsistemul normalizat au expresiile:
VNV
VNVVN z
d1dffz;zh
ydy;zgxdx
VNVN
VNVN
zwd)df/(fd)f/(fzZ
hydYgxdX
-
Grafica 3D UPB 2011-2012 25
Transformarea de normalizare Se deduce matricea de transformare denormalizare MN care efectueaztransformarea de la sistemul de referinobservator la sistemul de referin normalizat:
0100
d)df/(fd)f/(f0000h/d0000g/d
NM
1zyx
wZYX
VVV
NNNN
NM
-
Grafica 3D UPB 2011-2012 26
Transformarea de normalizare Matricea de transformare de normalizare MNpoate fi exprimat ca un produs de doumatrice astfel:
N1N2N MMM
1000010000h/d0000g/d
0100d)df/(fd)f/(f00
00100001
-
Grafica 3D UPB 2011-2012 27
Transformarea de normalizare Sistemul de referin normalizat astfel definiteste un sistem de referin stng.
Matricea MN1 este o matrice de scalareneuniform prin care trunchiul de piramid devizualizare este transformat ntr-un trunchi depiramid regulat cu unghiul la vrfulpiramidei de 90.
Matricea MN2 transform acest trunchi depiramid regulat n volumul canonic, careeste un paralelipiped dreptunghic
-
Grafica 3D UPB 2011-2012 28
Transformarea de normalizare
zV
yV
OV
Volumulde vizualizare
df
h
y
zO
d
d
MN1
MN2
zN
yN
1
1
1
(b)(a)
(c)
(a) Volumul de vizualizare nsistemul de referin de observare.(b) Scalarea care transformvolumul de vizualizare n trunchide piramid regulat cu unghiul lavrful piramidei de 90 grade.(c)Volumul de vizualizare canonicn sistemul de referin normalizat.
-
Grafica 3D UPB 2011-2012 29
Sistem de referinta normalizat n sistemul de referin normalizat se execut operaia de
decupare a obiectelor n coordonate normalizate omogene: din totalitatea obiectelor scenei virtuale sunt reinute numai acele
obiecte sau pri (rezultate prin decupare) aflate n interiorulvolumului de vizualizare canonic, ceea ce nseamn c, naintede transformarea de normalizare, acestea se aflau n interiorultrunchiului de piramid de vizualizare.
Din coordonatele omogene XN, YN, ZN , wN se pot deducecoordonatele xN, yN i zN ale punctului n sistemul de referinnormalizat tridimensional:
VNNNV
VNNNVVNNN z
d1dffwZz;zh
ydwYy;zgxdwXx
-
Grafica 3D UPB 2011-2012 1
GRAFICA 3D
Valentin Stoica
-
Grafica 3D UPB 2011-2012 2
Decuparea obiectelor Pentru un punct de observare i un volumde vizualizare nu ne intereseaz dectobiectele din interiorul acestui volum, a crorproiecie se genereaz n fereastra devizualizare se execut operaia de decupare relativ la
volumul de vizualizare (clipping) prin carese rein numai obiectele sau prile dinobiecte cuprinse n acest volum devizualizare
-
Grafica 3D UPB 2011-2012 3
Decuparea obiectelor Fiind dat un obiect tridimensional i un volum devizualizare, pot exista trei posibiliti: obiectul este complet n interiorul volumului el este
proiectat n fereastr i redat pe display obiectul este complet n afara volumului de vizualizare
el poate fi ignorat obiectul intersecteaz volumul de vizualizare se
decupeaz obiectul i partea vizibil (cuprins n interiorulvolumului) este proiectat n fereastra de vizualizare iredat pe display
Decuparea obiectelor tridimensionale relativ lavolumul de vizualizare se execut n sistemul dereferin normalizat n coordonate omogene,nainte de mprirea cu w
-
Grafica 3D UPB 2011-2012 4
Decuparea n plan Decuparea n planul bidimensional reprezint oparticularizare a operaiei de decupare n spaiultridimensional
Fiind dat un poligon oarecare n plan i o regiunede decupare, problema decuprii poligonului estede a reine numai acea parte din poligon care seafl n interiorul regiunii de decupare
Se consider cazul cel mai frecvent ntlnit n careregiunea de decupare este un dreptunghi culaturile paralele cu axele de coordonate. Aceastregiune de decupare corespunde ferestrei devizualizare
-
Grafica 3D UPB 2011-2012 5
Decuparea obiectelor
-
Grafica 3D UPB 2011-2012 6
Algoritmul Sutherland-Hodgman Majoritatea algoritmilor de decupare, att n plan cti n spaiu, se bazeaz pe algoritmul de decupareSutherland-Hodgman
Algoritmul Sutherland-Hodgman mparte planulbidimensional n nou regiuni, dup poziia fa deregiunea dreptunghiular de decupare dat prinecuaiile a patru drepte:
x = xmin; x = xmax; y = ymin; y = ymax
x = xmin x = xmax
y = ymaxy = ymin
y
x
-
Grafica 3D UPB 2011-2012 7
Algoritmul Sutherland-Hodgman Fiecrei regiuni i corespunde un cod devizibilitate (cunoscut sub numele de codSutherland-Cohen) reprezentat pe 4 bii, b0,b1, b2, b3, definii astfel:
b0 = semn(x xmin)b1 = semn(xmaxx)b2 = semn(y ymin)b3 = semn(ymaxy)
, unde semn(x) = 0 daca x>0, semn(x) = 1 unde x < 0 Codurile de vizibilitate se reprezint printr-osecven de cifre binare b3b2b1b0
-
Grafica 3D UPB 2011-2012 8
Algoritmul Sutherland-Hodgman
0000 0010
0100
0001
10001001
0101 0110
1010
x = xmin x= xmax
y = ymax
y = ymin
y
xCodurile de vizibilitate Sutherland-Cohen
-
Grafica 3D UPB 2011-2012 9
Algoritmul Sutherland-Hodgman Un poligon oarecare din plan:
poate fi complet inclus n regiunea de decupare poate fi complet n afara regiunii de decupare poate intersecta regiunea de decupare
Folosind codurile de vizibilitate ale vrfurilor poligonului se pot identificadirect (fr s se execute calcule de intersecii) dou situaii alepoligonului fa de regiunea de decupare: Acceptare sigur. Dac toate vrfurile poligonului se afl n regiunea dedecupare, atunci polinomul este vizibil n ntregime. Fie C1, C2,., Cn,codurile de vizibilitate ale vrfurilor poligonului. Pentru testul de acceptaresigur se calculeaz reuniunea acestor coduri (operaia OR): SC = C1 | C2|| Cn. Dac SC = 0, atunci poligonul este sigur vizibil:
(a) Acceptare sigurSC = 0000
-
Grafica 3D UPB 2011-2012 10
Algoritmul Sutherland-Hodgman Rejecie sigur. Dac toate vrfurile unui poligon se afl ntr-unuldin semiplanele invizibile (x < xmin; x > xmax; y < ymin; y > ymax),atunci tot poligonul este sigur invizibil. Pentru testul de rejeciesigur se calculeaz intersecia codurilor de vizibilitate (operaiaAND): PC = C1 & C2 && Cn. Dac PC 0, atunci poligonul estesigur invizibil deoarece toate punctele se afl n semiplanul invizibilcorespunztor bitului diferit de 0 din PC:
1010
0010
(b) Rejecie sigurPC = 0010
0010
1010
0110
-
Grafica 3D UPB 2011-2012 11
Algoritmul Sutherland-Hodgman Dac nu este ndeplinit nici condiia de acceptare sigur, nicicondiia de rejecie sigur, atunci decuparea se calculeaz prinintersecia laturilor poligonului cu dreptele care mrginescregiunea de decupare:
(c) Decupare prin intersecieSC = 1111, PC = 0000
1000
0100
00100001
-
Grafica 3D UPB 2011-2012 12
Algoritmul Sutherland-Hodgman Dreapta (infinit) corespunztoare unei laturi a regiunii de
decupare mparte planul n dou semiplane: semiplanul (regiunea) vizibil, care se afl de aceeai parte a
dreptei ca i regiunea de decupare semiplanul invizibil, care se afl de partea opus fa de
regiunea de decupare.De exemplu, pentru latura x = xmin, semiplanul x < xmin, este
invizibil, iar semiplanul x xmin este vizibil
Semiplanulinvizibil
x = xmin
y
x
Semiplanulvizibil
-
Grafica 3D UPB 2011-2012 13
Algoritmul Sutherland-Hodgman n algoritmul de decupare Sutherland-Hodgman,decuparea unui poligon fa de o regiune dat seefectueaz ntr-un numr de pai egal cu numrulde laturi ale regiunii de decupare:
n fiecare pas se decupeaz poligonul (iniial sau provenitdintr-un pas anterior) relativ la o latur a regiunii dedecupare: se elimin acea poriune din poligon care se afl n semiplanulinvizibil corespunztor laturii se reine numai poriunea vizibil
Poligonul se reprezint printr-o list ordonat devrfuri V1V2Vn, i fiecare pereche de dou vrfuriconsecutive (Vi Vi+1), pentru i < n, i (VnV1)reprezint o latur a poligonului ca un segment dedreapt orientat (vector).
-
Grafica 3D UPB 2011-2012 14
Algoritmul Sutherland-Hodgman n fiecare pas de decupare:
se pornete de la un poligon dat printr-o listordonat de vrfuri
se creeaz lista vrfurilor poligonului rezultat prindecupare relativ la dreapta suport a unei laturi aregiunii de decupare.
Iniial lista vrfurilor poligonului rezultat esteconsiderat vid
Un segment orientat ViVj se poate afla ntr-una din patru situaii posibile fa de o laturde decupare:
-
Grafica 3D UPB 2011-2012 15
Algoritmul Sutherland-Hodgman(A) Dac ambele vrfuri se afl n semiplanulvizibil corespunztor laturii de decupare,atunci se adaug n list vrful Vj:
Vi
Vj
Semiplanulinvizibil
(A) Vi vizibil,Vj vizibilSe adaug VjSemiplanul
vizibil
-
Grafica 3D UPB 2011-2012 16
Algoritmul Sutherland-Hodgman(B) Dac ambele vrfuri se afl n semiplanulinvizibil, atunci nu se adaug nici un vrf nlist:
Semiplanulvizibil
Vi
VjSemiplanulinvizibil
(B) Vi invizibil,Vj invizibilNu se adaugnici un vrf
-
Grafica 3D UPB 2011-2012 17
Algoritmul Sutherland-Hodgman(C) Dac primul vrf al segmentului (Vi) se afl n semiplanul vizibil,
iar al doilea (Vj) se afl n semiplanul invizibil (segmentul esteorientat de la semiplanul vizibil ctre semiplanul invizibil), atuncise calculeaz intersecia I dintre segment i dreapta dedecupare i se adaug intersecia I n list:
Semiplanulvizibil
Vi
Vj
Semiplanulinvizibil
(C) Vi vizibil,Vj invizibilSe adaug I
I
-
Grafica 3D UPB 2011-2012 18
Algoritmul Sutherland-Hodgman(D) Dac primul vrf al segmentului (Vi) se afl n semiplanul
invizibil, iar al doilea (Vj) se afl n semiplanul vizibil (segmentuleste orientat de la semiplanul invizibil ctre semiplanul vizibil),atunci se calculeaz intersecia I dintre segment i dreaptade decupare, n lista vrfurilor se adaug intersecia I i apoivrful Vj:
Semiplanulvizibil
Vi
Vj
Semiplanulinvizibil
(D) Vi invizibil,Vj vizibilSe adaug I, Vj
I
-
Grafica 3D UPB 2011-2012 19
Algoritmul Sutherland-Hodgman
x = xmin
Semiplaninvizibil
SemiplanvizibilV3
V2
V1
I1
I2
(a) Poligonul V1V2V3V4 decupatn semiplanul x xmin
x = xmax
Semiplanvizibil
V4
SemiplaninvizibilV3
V1
I1
I2
(b) Poligonul I1I2V3V4V1 decupatn semiplanul x xmax
I4
I3
V4
-
Grafica 3D UPB 2011-2012 20
Algoritmul Sutherland-Hodgman
y = yminSemiplaninvizibil
I4Semiplanvizibil
V3
V1
I1
I2
(c) Poligonul I2V3 I3 I4V1I1 decupatn semiplanul y ymin
I1
I2I3
I6I5
y = ymax
Semiplaninvizibil I4
Semiplanvizibil
I5
V1
I1
I2
(d) Poligonul I2I5 I6 I3I4V1I1 decupatn semiplanul y < ymax
I1
I2 I3
I6
I8 I7
Decuparea unui poligon n algoritmul Sutherland-Hodgman.Poligonul rezultat este: I5 I6 I3I7 I8 I1 I2
-
Grafica 3D UPB 2011-2012 21
Decuparea suprafetelor relativ la volumul de vizualizare(Decuparea 3D) Algoritmii de decupare a obiectelor n spaiul tridimensional
pot fi considerai ca o extensie a algoritmilor de decupare dinplan, prin nlocuirea regiunii de decupare plane cu un volumde decupare i efectuarea calculelor de intersecie a uneisuprafee n spaiu cu planele volumului de decupare
Decuparea la volumul de vizualizare este un caz particular aldecuprii spaiale, n care volumul de decupare este volumulde vizualizare (trunchiul de piramid de vizualizare) definit nsistemul de referin de observare
n continuare se va analiza modul de execuie a decupriipentru sistemul de vizualizare definit ca un trunchi depiramid i se va evidenia de ce decuparea se execut celmai eficient n sistemul de referin normalizat
-
Grafica 3D UPB 2011-2012 22
Decuparea 3D
zVxV
yV
OV
zV = f
zV=d
xV = g zV/d
yV=h zV/d
AB
D C
Directia de observare
-
Grafica 3D UPB 2011-2012 23
Decuparea 3D Volumul de decupare se definete prin ase plane n sistemul de
referin de observare Fiecare plan mparte spaiul tridimensional n dou semispaii:
semispaiul vizibil, aflat de aceeai parte a planului ca i volumulde decupare
semispaiul invizibil, n partea opus a volumului.
-
Grafica 3D UPB 2011-2012 24
Decuparea 3D Decuparea unei suprafee n raport cu un plan al volumului de
decupare se efectueaz asemntor cu decuparea unui poligonfa de o latur de decupare: fiecare latur orientat introduce zero, unul sau dou vrfuri n
lista de vrfuri a suprafeei rezultate, n funcie de orientare i deintersecia ei cu planul
un vrf este vizibil n raport cu un plan dac se afl n semispaiulvizibil determinat de planul dat.
De exemplu, un vrf este vizibil n raport cu planul , dac yV hzV/d.
n mod asemntor, decuparea relativ la celelate plane alevolumului de decupare definit n sistemul de referin deobservare stng necesit testele:
fz;dz;zdgx;zd
gx;zdhy VVVVVVVV
-
Grafica 3D UPB 2011-2012 25
Decuparea 3D Aceste teste implic operaii asupra coordonatelorvrfurilor, operaii care n form matricealnseamn nmulirea cu matricea MN1, component amatricei de normalizare. Matricea MN1 transformsistemul de referin de observare ntr-un sistem dereferin Oxyz, n care volumul de vizualizare(deci volumul de decupare) este un trunchi depiramid regulat cu unghiul de la vrful piramideide 90. Relaiile anterioare de testare a vizibilitii unui punctn sistemul de referin de observare suntechivalente cu urmtoarele relaii n sistemulOxyz:
x z; x z; y z; y z; z f; z d
-
Grafica 3D UPB 2011-2012 26
Decuparea 3D Dac s-ar executa decuparea n sistemul dereferin intermediar Oxyz, atunci toate puncteledin sistemul de referin de observare se transformmai nti cu matricea MN1, pentru trecerea nsistemul Oxyz, apoi se execut decuparea, iardup decupare, vrfurile vizibile se transform cumatricea MN2, pentru trecere n sistemul de referinnormalizat i proiecie n fereastra de vizualizare.
Aplicarea separat a dou transformri, mai ntiprin matricea MN1 i apoi prin matricea MN2 estecostisitoarte i nenecesar, dat fiind c decuparease poate face direct n sistemul normalizat
-
Grafica 3D UPB 2011-2012 27
Decuparea 3D
1000010000dh0000dg
N1M
0100d)-(ffd-)d-f(f00
00100001
N2M
yV = hzV/d
yV
zV
yV = hzV/d
zV = d zV = f
y = z
y
z
(a) (b)z = d z = f
zN
yN
zN= 1zN = 0yN = 1
yN = 1
(c)
(a) Volumul de decupare nsistemul de referin de observare(b) Volumul de decupare nsistemul Oxyz(c) Volumul de decupare nsistemul de referin normalizat
-
Grafica 3D UPB 2011-2012 28
Decuparea 3D n sistemul de referin normalizat volumul dedecupare este un paralelipiped dreptunghic cusuprafeele paralele cu planele sistemului decoordonate.
Testele de vizibilitate ale unui punct n raport cuplanele volumului de decupare sunt:
Aceste teste se pot efectua direct n coordonateleomogene n sistemul normalizat, fr s mai fienecesar mprirea cu wN
xN 1; xN 1; yN 1; yN 1; zN 1; zN 0;
-
Grafica 3D UPB 2011-2012 29
Decuparea 3D Codul de vizibilitate C al unui vrf n coordonatenormalizate omogene se exprim pe 6 bii i fiecare bitse poziioneaz n funcie de rezultatul unuia dintestele din relaia:
b0 = semn(XN wN)b1 = semn(wN XN)b2 = semn(YN wN)b3 = semn(wN YN)b4 = semn(ZN wN)b5 = semn(ZN)
Spaiul omogen normalizat se mparte n 27 de regiunidup poziia lor fa de planele care definesc volumulcanonic de vizualizare. n interiorul volumului canonic, toate punctele au codulde vizibilitate cu toi biii egali cu 0 (C = 000000). n toatecelelalte regiuni, codul de vizibilitate este diferit de 0,avnd unul sau mai muli bii egali cu 1.
-
Grafica 3D UPB 2011-2012 30
Decuparea 3D Algoritmul Sutherland-Hodgman de decupare nspaiu se desfoar n mod asemntor cualgoritmul de decupare n plan:
Pentru o suprafa dat prin vrfurile ei n spaiu,decuparea relativ la un volumul dat prin ecuaiile planelorsale se efectueaz n modul urmtor: se calculeaz codurile de vizibilitate ale vrfurilor suprafeei se efectueaz testele de acceptare i rejecie sigur. pentru suprafeele care nu ndeplinesc nici unul din acesteteste se continu cu decuparea prin intersecia cu volumul dedecupare:
decuparea prin intersecie a unei suprafee se efectueaz ntr-unnumr de pai egal cu numrul de plane ale volumului dedecupare n fiecare pas se obine o nou suprafa, din care a fosteliminat poriunea invizibil n raport cu planul de decuparerespectiv
-
Grafica 3D UPB 2011-2012 31
Decuparea 3D Dup efectuarea decuprii, se calculeaz coordonatele xN, yN, zN alevrfurilor suprafeelor vizibile rezultate (prin mprirea cu wN), iar toatecelelalte vrfuri (ale suprafeelor invizibile) sunt ignorate. Acest lucrunseamn c operaia de mprire omogen se execut pentru unnumr strict necesar de vrfuri, ceea ce reprezint un ctig n vitezade execuie. Se pune problema dac nu ar fi mai simplu s fie efectuat decuparean plan, deci dup calculul proieciilor suprafeelor, dat fiind calgoritmul de decupare n plan este mai simplu:
toate suprafeele s fie proiectate pe planul de vizualizare se efectueze decuparea relativ la fereastra de vizualizare. Aceast soluie este ns inacceptabil, datorit faptului c n fereastra deproiecie se proiecteaz att punctele (vrfuri ale suprafeelor) aflate nvolumul de vizualizare, ct i cele aflate ntr-un volum simetric cu acesta fade planul zV= 0, care se afl n spatele observatorului.
Tratarea tuturor acestor suprafee proiectate n fereastra de vizualizaredar invizibile consum un timp de execuie n mod inutil. De aceea,decuparea obiectelor la volumul de vizualizare nu se poate executacorect i eficient dect n spaiul tridimensional, i anume ncoordonate normalizate omogene.
-
Grafica 3D UPB 2011-2012 1
GRAFICA 3D
Valentin Stoica
-
Grafica 3D UPB 2011-2012 2
Sistemul de referinta ecran 3D Transformarea din sistemul de referin normalizat n sistemul dereferin ecran 3D efectueaz o coresponden ntre fereastra dinplanul de vizualizare i zona de afiare alocat pe display numitpoart de afiare (viewport) Fereastra de vizualizare:
este definit ntr-un sistem de referin bidimensional nplanulzN = 0 al sistemului de referin normalizat
Poarta de afiare: este definit ntr-un sistem de referin bidimensional nplanul zS = 0 al sistemului de referin ecran 3D este, n general, o zon rectangular de dimensiuni egalecu numrul de pixeli corespunztori pe orizontal i pevertical a zonei afiate
n sistemul de referin ecran 3D se calculeaz coordonateletridimensionale ale punctelor, din coordonatele omogene, prinmprirea cu w, dup care se execut transformarea de rastru
-
Grafica 3D UPB 2011-2012 3
Sistemul de referinta ecran 3D
xN
yN
xmin xS
yS
xmax
ymin
ymax
xPmax
yPmax
yPmin
xPmin
PyN
xN
P
xS
ySCFyCF
xCF xCP
yCPCP
Transformarea de la fereastra de vizualizare la poarta de afiare
-
Grafica 3D UPB 2011-2012 4
Sistemul de referinta ecran 3D Transformarea din sistemul de referinnormalizat n sistemul ecran 3D las coordonata znemodificat.
Sistemul de referin ecran 3D astfel definit esteun sistem de referin stng, la fel ca i sistemul dereferin normalizat
Transformarea de la sistemul de referin normalizatla ecran 3D se face folosind matricea detransformare ecran 3D obinut prin compunerea atrei transformri succesive
-
Grafica 3D UPB 2011-2012 5
Sistemul de referinta ecran 3D Matricea de transformare ecran 3D este compus
din: o translaie, astfel nct centrul CF al ferestrei s ajung n
origine, folosind matriceaT(xCF , yCF ,0)
o scalare cu factorii de scar sx, sy, folosind matricea S(sx,sy, sz) astfel nct fereastra s ajung la dimensiuneaporii, iar coordonata z se las nemodificat
o translaie, prin care centrul porii este adus n punctulCP, deci cu matricea de translaie T(xCP, yCP, 0)
1syyyysxxxxs
zminmaxminPmaxPy
minmaxminPmaxPx
-
Grafica 3D UPB 2011-2012 6
Sistemul de referinta ecran 3D Matricea de transformare ecran 3D
NNNN
SSSS
CFyCPyCFxCPx
CFCF
yx
CPCP
wZYX
wZYX
;10000100
ysy0s0xsx00s
10000100y010x001
1000010000s0000s
10000100
y010x001
NSNS
NS
MM
M
-
Grafica 3D UPB 2011-2012 7
Sistemul de referinta ecran 3D Planul zS = 0 din sistemul de referin ecran 3D este planul de
proiecie Coordonatele xS i yS reprezint coordonatele proieciei
ortografice n planul zS = 0 (care este planul de porii de afiare). Transformarea de proiecie perspectiv din sistemul de
referin de observare a devenit o transformare de proiecieortografic n sistemul de referin ecran 3D
Coordonata zS n sistemul de referin ecran 3D este utilizat nalgoritmii de eliminare a suprafeelor ascunse
Volumul de vizualizare n sistemul ecran 3D este unparalelipiped dreptunghic cu baza un dreptunghi de dimensiuniegale cu dimensiunile porii afiate i nlimea egal cu 1,(zS [0,1])
-
Grafica 3D UPB 2011-2012 8
Sistemul de referinta ecran 3D
zS
yS
10
Poarta deafisare
(a) Volumul de vizualizare n sistemul de referin normalizat(b) Volumul de vizualizare n sistemul de referin ecran 3D
zN10
Fereastra devizualizare 1
1
yN
xN(a) (b)
-
Grafica 3D UPB 2011-2012 9
Transformarea de rastru Transformarea de rastru (rasterization)
conversia de la reprezentarea prin coordonatele vrfurilor aunui segment sau a unui poligon (primitiv geometric) lareprezentarea prin mulimea corespunztoare de pixelicare se afieaz pe display Transformarea de rastru se mai numete
conversie de baleiere (scan conversion) desenarea segmentelor, respectiv a poligoanelor (linedrawing, polygon drawing) generare linie, respectiv poligon (line generation, polygongeneration).
Transformarea de rastru trecerea de la spaiulbidimensional continuu (poarta de afiare definitn planul zS = 0 al sistemului de referin ecran3D) la spaiul discret al imaginii
-
Grafica 3D UPB 2011-2012 10
Transformarea de rastru
(a) Spaiul bidimensional continuu al porii de afiare(b) Spaiul bidimensional discret al imaginii
(b)xS
yS
(a) xi
yi
xk xk+1
yk+1yk
xk
yk
-
Grafica 3D UPB 2011-2012 11
Transformarea de rastru Spaiul imagine
un tablou bidimensional de locaii discrete pixeli fiecare pixel are o adres care corespunde poziiei n imaginea acestuia un pixel ocup n poarta de afiare o zon ptrat dedimensiune 1 1 a crui adres este dat de coordonatacolului stnga-jos un pixel din spaiul imagine se reprezint prin culoarea lui,care se memoreaz ntr-un buffer de imagine adresa pixelului n spaiul imagine determin adresa nbufferul de imagine n care se memoreaz culoarea acestuia
dimensiunea imaginii este specificat prin numrul de pixelipe orizontal (M), respectiv pe vertical (N), care pot fiafiai n zona de ecran atribuit porii de afiare dimensiunea maxim a imaginii depinde de rezoluiadisplay-ului folosit
-
Grafica 3D UPB 2011-2012 12
Transformarea de rastru Din coordonatele x i y ale vrfurilor primitivelor
geometrice n poarta de afiare se calculeazecuaiile segmentelor de dreapt (laturile), iarmulimea de pixeli generat n spaiul imaginetrebuie s aproximeze ct mai bine segmentele dedreapt sau interiorul poligoanele delimitat prinlaturile sale
Transformarea de rastru a segmentelor saupoligoanelor calculeaz adresa fiecrui pixel dinmulimea de pixeli prin care se aproximeazprimitiva geometric dat i nscrie la adresacorespunztoare din bufferul de imagine intensitateade culoare a pixelului respectiv:
-
Grafica 3D UPB 2011-2012 13
Transformarea de rastru culoarea pixelului poate fi o culoare
constant, rezultat din atributul deculoare al primitivei geometrice saudin condiii de umbrire constant(poligonal) aceast culoare senscrie la toate adresele pixelilorcare aparin primitivei geometrice nbufferul de imagine
culoarea pixelului poate varia (ncazul umbririi Gouraud, culoareafiecrui pixel se calculeaz prininterpolare, concomitent cu calcululadresei pixelilor n transformarea derastru)
-
Grafica 3D UPB 2011-2012 14
Transformarea de rastru Concomitent cu transformarea de rastru, se poate
executa operaia de eliminare a suprafeelorascunse, folosind coordonata zS (adncimea) avrfurilor primitivelor geometrice calculate nsistemul de referin ecran 3D (algoritmul de tipbuffer de adncime, Z-buffer).
n cele mai multe din sistemele grafice actuale,transformarea de rastru, umbrirea i eliminareasuprafeelor ascunse se execut intercorelat, ntr-osingur scanare (baleiere) a primitivei geometrice.La sistemele evoluate se adaug la acestea ioperaiile de netezire a liniilor (anti-aliasing) i detexturare.
-
Grafica 3D UPB 2011-2012 15
Generarea segmentelor de dreapta Se consider un segment de dreapt AB datprin capetele lui (xA, yA), (xB, yB) n sistemul decoordonate poarta de afiare; ecuaia dreptei care trece prin aceste puncte este
y = ax + bunde a = (yB yA) / (xB xA), b = yA a xA
xA xB x
y
A
ByByA
-
Grafica 3D UPB 2011-2012 16
Generarea segmentelor de dreapta Adresa unui pixel este dat de coordonatele colului
lui stnga-jos, deci pixelul de adres (xk, yk) este unptrat cu colurile:
(xk, yk), (xk +1, yk), (xk+1,yk+1), (xk, yk+1), unde xk i yk sunt numere ntregi
Dac x1 x2, atunci se calculeaz secvena depuncte pe dreapt:
(x1 = xA, y1 = ax1 + b),(x2 = x1+1, y2 = ax2 + b),(xi, yi = axi + b).
-
Grafica 3D UPB 2011-2012 17
Generarea segmentelor de dreapta Fiecrui punct pe dreapt i se asociaz un pixel acrui adres n sistemul de referin imagine seaproximeaz prin trunchierea sau rotunjireacoordonatelor punctului n sistemul de referin deafiare:
xi = (int)xi sau xi = (int)(xi + 0.5)yi = (int)yi sau yi = (int)(yi + 0.5)
(a) a = 0.5 (b) a = 2x x
y y
A
B
A
B
Generarea segmentelor de dreapt prin aplicarea direct a relaiilor de calcul.
-
Grafica 3D UPB 2011-2012 18
Generarea segmentelor de dreapta Dezavantaje ale aplicarerii directe a formulei de
calcul al punctelor de pe dreapt: necesit mai multe operaii (adunare, nmulire) n numere
flotante pentru fiecare pixel, operaii care au timp deexecuie ridicat
genereaz segmente de dreapt ntrerupte dac a > 1 Algoritmii incrementali elimin dezavantajele astfel:
evitarea operaiilor de nmulire n virgul flotant se faceprin trecerea prin incrementare de la un punct la urmtorulpunct
obinerea segmentelor de dreapt fr ntrerupri serealizeaz prin tratarea separat a cazurilor abs(a) 1 iabs(a) > 1
-
Grafica 3D UPB 2011-2012 19
Generarea segmentelor de dreapta Dac abs(a) 1 i xA xB
se ncepe generarea din punctul (x1 = xA, y1 = yA) la fiecare pas se incrementez x cu 1, deci se iau punctele
de pe dreapt care aux1 = xA, x2 = x1+1,, xi+1 = xi+1,..
deoarece yi = axi + b yi+1 = axi+1 + b = a(xi+1) + b = (axi+b) + a = yi + a.
pentru trecerea de la un punct la urmtorul: x se incrementeaz cu 1 y se incrementeaz cu valoarea pantei (a)
punctului de pe dreapt de coordonate (xi, yi), icorespunde un pixel a crui adres n spaiul imagine secalculeaz prin trunchiere sau rotunjire
-
Grafica 3D UPB 2011-2012 20
Generarea segmentelor de dreapta Dac abs(a) 1 i xA > xB
se ncepe generarea din punctul (x1 = xB, y1 = yB) restul calculelor se continu la fel ca n cazulprecedent