Grafica 3D

download Grafica 3D

of 298

description

Cursul de la TelecomunicatiiPDF

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