Sunteți pe pagina 1din 22

GRAFICA 3D

Valentin Stoica

Grafica 3D

UPB 2011-20012

Sisteme de referinta
tridimensionale
coordonate cilindrice
P(, , z)

coordonate sferice
P(r, , )

coordonate carteziene
P(x, y, z)

Grafica 3D

UPB 2011-20012

Sisteme de coordonate
carteziene
Sistem de referin universal

este sistemul de coordonate cartezian n care sunt definite


toate obiectele scenei virtuale

Se definete prin originea O i trei axe


perpendiculare, Ox, Oy i Oz, orientate dup regula
minii drepte sau dup regula minii stngi
y

O
x
z

(a)

(b)

(a) Sistem de coordonate orientat dup


regula minii drepte (sistem de
coordonate drept)

Grafica 3D

(b) Sistem de coordonate orientat dup


regula minii stngi

UPB 2011-20012

Sisteme de coordonate
carteziene
Un punct P n spaiul tridimensional se reprezint n

sistemul de referin cartezian printr-un tripet de valori


scalare x, y, z, ce reprezint componentele vectorului de
poziie OP pe cele trei axe de coordonate
n notaia matriceal un punct n spaiul tridimensional se
poate reprezenta printr-o matrice linie sau coloan:

P x

sau

x
P y
z

Convenia de reprezentare matematic folosita de


biblioteca grafic OpenGL este cea de matrice coloan
pentru un punct n spaiul tridimensional

Grafica 3D

UPB 2011-20012

Modele de culoare

Modelul RGB
culoarea este reprezentat printr-un triplet de culori
primare, rou (red) verde (green), albastru (blue).
spaiul de reprezentare a tuturor
Verde
culorilor n modelul RGB este un
Cian
cub ntr-un sistem de coordonate
Alb
cu axele notate Rou (Red), Verde
Negru
Albastru
(Green), Albastru (Blue)
C(r,g,b) = rR + gG + bB
Magenta

Galben

Rosu

Modelul RGBA

cea de-a patra component () indic transparena


suprafeei:

= 1suprafa opac
= 0 suprafa complet transparent

Grafica 3D

UPB 2011-20012

Modelul RGB

Grafica 3D

UPB 2011-20012

Modele de culoare

Modelul HSV

transformare neliniar a spaiului RGB, prin care culorile


sunt specificate prin componentele: nuan (hue), saturaie
(saturation) i valoare (value).

Spaiul culorilor n modelul HSV


este o piramid hexagonal ntr-un
sistem de coordonate polare HVS

Verde
Cian

V
Alb

Albastru

Galben
Rou
Magenta
H

Negru

Grafica 3D

UPB 2011-20012

Modelarea obiectelor

Proprietile obiectelor tridimensionale ce se


modeleaz n aplicaiile grafice se pot mpri n
dou categorii:

forma

solide
deformabile

aspect

Modelarea solidelor

o tehnic de proiectare, vizualizare i analiz a modului n


care obiectele reale se reprezint n calculator
modelare prin:

suprafa de frontier (modelarea poligonal, modelarea prin


reele de petice parametrice)
volum (modelarea prin compunerea obiectelor, modelarea
prin divizare spaial)
Grafica 3D

UPB 2011-20012

Metodele de modelare si reprezentare


a obiectelor

Modelarea poligonal: obiectele sunt


aproximate printr-o reea de fee care sunt
poligoane planare.

Grafica 3D

UPB 2011-20012

Metodele de modelare si reprezentare


a obiectelor

Modelarea prin reele de petice parametrice


bicubice (bicubic parametric patches): obiectele
sunt aproximate prin reele de elemente spaiale
numite petice (patches). Acestea sunt reprezentate
prin polinoame cu dou variabile parametrice, n
mod obinuit cubice.
Puncte
de control

Grafica 3D

UPB 2011-20012

10

Metodele de modelare si reprezentare


a obiectelor

Modelarea prin compunerea obiectelor


(Constructive Solid Geometry - CSG):
obiectele sunt reprezentate prin colecii de
obiecte elementare (cilindri, sfere, poliedre,
etc.).
Sfera
+
Cub

Grafica 3D

UPB 2011-20012

11

Metodele de modelare si reprezentare


a obiectelor

Modelarea prin divizare spaial: obiectele


sunt ncorporate n spaiu, prin atribuirea unei
etichete fiecrui element spaial, n funcie de
obiectul care ocup elementul respectiv.

Grafica 3D

UPB 2011-20012

12

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 printrun poligon

Grafica 3D

UPB 2011-20012

13

Reprezentarea
poligoanelor
Poligon:

o regiune din plan mrginit de o colecie finit de


segmente de dreapt care formeaz un circuit nchis
simplu.

Fie n puncte n plan (v0, v1, ,vn1) i n segmente


de dreapt (e0 = v0v1, e1 = v1v2, . en1 = vn1v0) care
conecteaz perechi de puncte succesive n ordine
ciclic, deci inclusiv conexiunea ntre ultimul punct i
primul punct din list. Aceste segmente mrginesc
un poligon, dac i numai dac:

intersecia fiecrei perechi de segmente adiacente n


ordinea ciclic este un singur punct, coninut de ambele
segemente: 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 2011-20012

14

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 parcurg
muchiile n sensul lor de definiie, interiorul poligonului este
vzut ntotdeauna n partea stng/dreapt).
v1

e0

v0

e1

v2

e4

v4

e2

v3
e3

Grafica 3D

UPB 2011-20012

15

Reprezentarea poliedrelor

Modelarea i reprezentarea prin suprafaa de frontier =


obiectele sunt aproximate prin poliedre i modelul lor este
reprezentat prin suprafaa poliedrului, compus dintr-o colecie
de poligoane
Suprafaa de frontier a unui poliedru conine trei tipuri de
elemente geometrice: vrfurile (punctele), care sunt zerodimensionale, muchiile (segmentele), care sunt unidimensionale
i feele (poligoanele), care sunt bidimensionale
Fete poligonale

Muchii

Vrfuri

Grafica 3D

UPB 2011-20012

16

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 geometrice
necesare n redare (de exemplu, normalele la
suprafee).
Forma unui obiect modelat prin reea de poligoane
poate fi reprezentat ca un vector de fee, fiecare
fa fiind un vector de vrfuri, fiecare vrf fiind un
vector de trei coordonate n virgul flotant
Grafica 3D

UPB 2011-20012

17

Implementarea modelului
poligonal

Exemplu: cub

double CubeFaces[6][4][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}},
{{-1,-1, 1},
{ 1,-1, 1},
{ 1, 1, 1},
{-1, 1, 1}},
{{ 1,-1,-1},
{-1,-1,-1},
{-1, 1,-1},
{ 1, 1,-1}},
{{ 1,-1, 1},
{ 1,-1,-1},
{ 1, 1,-1},
{ 1, 1, 1}},
{{-1,-1, 1},
{-1, 1, 1},
{-1, 1,-1},
{-1,-1,-1}}

// fata 0

// fata 1

// fata 2

// fata 3

// fata 4

// fata 5

};

implementare ineficient deoarece


fiecare vrf este prelucrat de trei ori,
pentru fiecare fa adiacent acestuia

Grafica 3D

UPB 2011-20012

18

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 2011-20012

19

Reprezentarea poliedrelor

O reea de poligoane
poate s reprezinte:

suprafaa de frontier
nchis a unui solid

suprafaa deschis,
necesar n anumite
situaii de modelare, cum
este suprafaa terenului
simulat ntr-o scen
virtual
Grafica 3D

UPB 2011-20012

20

Reprezentarea poliedrelor

Tipuri de reprezentare:

reprezentare ca suprafa
(poligoane pline)

reprezentare prin contur


cadru de srm
(wireframe)

Grafica 3D

UPB 2011-20012

21

Reprezentarea poliedrelor

Precizia de reprezentare a modelului

diferena dintre suprafaa obiectului i feele


poligonale prin care este aproximat
numrul mare de poligoane = precizia de
reprezentare mai bun = cerine de calcul sporite

16x16 poligoane
Grafica 3D

32x32 poligoane
UPB 2011-20012

64x64 poligoane
22