+ All Categories
Home > Documents > Bezier Bi Cubice

Bezier Bi Cubice

Date post: 16-Dec-2015
Category:
Upload: armanda-daniel
View: 247 times
Download: 1 times
Share this document with a friend
Description:
Bezier Bi Cubice OpenGL
19
1. Editor de suprafete obtinute prin compunere din petice de suprafata Bezier bi-cubice - editorul va putea sa "incarce" diverse petice din fisiere de pe disc care vor fi apoi folosite pentru a crea suprafata - in aceste fisiere se vor gasi punctele de control ale peticelor - dupa afisare utilizatorul are posibilitatea de a deplasa punctele de control folosind mouse-ul; programul va asigura pastrarea continuitatii geometrice de ordin 2 la jonctiunea dintre petice - deasemenea va exista posibilitatea "lipirii" peticelor precum si a "scoaterii" acestora din suprafta creata - salvarea terenului intr-un format care permite vizualizarea/editarea ulterioara cat mai usoara folosind OpenGL - afisarea wire-frame/solid/fete vizibile ; posibilitatea adaugarii de iluminare si de schimbare a proprietatilor de material (1-2 studenti) 2. Implementarea algoritmului Ray-tracing pentru un numar limitat de tipuri de obiecte in scena 3D (1-2 studenti) 3. Aplicarea texturilor pe obiecte poliedrale oarecare - calculul coordonatelor textura pentru varfuri se va efectua printr-o mapare in 2 pasi: - folosind ca suprafata intermediara sfera si cilindrul -diferite tipuri de mapari - vizualizarea suprafetei in OpenGl (1-2 studenti) 4. Loader si modeller 3D.Fiind dat intr-un fisier un set de obiecte reprezentate prin suprafata, fiecare suprafata fiind alcatuita din mai multe retele de fete poligonale ("mesh"), se cere realizare unei aplicatii prin care: - utilizatorul poate selecta varfuri, primitive (triunghiuri) sau un intreg obiect folosind mouse-ul - dupa selectare se pot aplica transformari elementare asupra selectiei (translatie, rotatie, scalare)
Transcript
  • 1. Editor de suprafete obtinute prin compunere din petice de suprafata Bezier bi-cubice

    - editorul va putea sa "incarce" diverse petice din fisiere de pe disc care vor fi apoi folosite pentru a crea suprafata

    - in aceste fisiere se vor gasi punctele de control ale peticelor

    - dupa afisare utilizatorul are posibilitatea de a deplasa punctele de control folosind mouse-ul; programul va asigura pastrarea continuitatii geometrice de ordin 2 la jonctiunea dintre petice

    - deasemenea va exista posibilitatea "lipirii" peticelor precum si a "scoaterii" acestora din suprafta creata

    - salvarea terenului intr-un format care permite vizualizarea/editarea ulterioara cat mai usoara folosind OpenGL

    - afisarea wire-frame/solid/fete vizibile ; posibilitatea adaugarii de iluminare si de schimbare a proprietatilor de material

    (1-2 studenti)

    2. Implementarea algoritmului Ray-tracing pentru un numar limitat de tipuri de obiecte in scena 3D

    (1-2 studenti)

    3. Aplicarea texturilor pe obiecte poliedrale oarecare

    - calculul coordonatelor textura pentru varfuri se va efectua printr-o mapare in 2 pasi:

    - folosind ca suprafata intermediara sfera si cilindrul

    -diferite tipuri de mapari

    - vizualizarea suprafetei in OpenGl

    (1-2 studenti)

    4. Loader si modeller 3D.Fiind dat intr-un fisier un set de obiecte reprezentate prin suprafata, fiecare suprafata fiind alcatuita din mai multe retele de fete poligonale ("mesh"), se cere realizare unei aplicatii prin care:

    - utilizatorul poate selecta varfuri, primitive (triunghiuri) sau un intreg obiect folosind mouse-ul

    - dupa selectare se pot aplica transformari elementare asupra selectiei (translatie, rotatie, scalare)

  • - deasemenea se pot aplica transformari avansate asupra selectiei cum ar fi

    modificarea coordonatelor de textura modificarea normalelor schimbarea/adaugarea de noi texturi pe suprafata incarcata

    - scena finala va putea fi salvata in acelasi fisier

    Se va folosi un format de fisier standard (.3DS, .X, .OBJ(Maya), .MS3D, etc)

    (1-2 studenti)

    5. Simularea suprafetei unei ape prin diverse metode. Crearea de efecte cum ar fi valuri, valuri concentrice la caderea unui obiect in apa, compunerea valurilor , etc.

    (1 student)

    6. Editor ce permite simularea focului (flacari). Se vor putea seta diversi parametrii cum ar fi forma flacarilor, culoarea, intensitatea, etc

    (1 student)

    7. Aplicatie de generare a terenurilor virtuale 3D:

    Plecand de la o imagine grayscale 2D (un heightmap) trebuie generat un teren virtual 3D de intindere mare. Deasemenea trebuie sa implementati LOD (level of detail) pentru acest teren 3D.

    (1-2 studenti)

    8. Generator sistem de particule

    Aplicatia trebuie sa permita editarea/afisarea de sisteme de particule pentru a simula ploaie, zapada, fum, etc. Prin editare se intelege pozitionarea efectului in scena ("emitter"), modificarea densitatii, dimensiunii si a culorii particulelor, a timpului de viata, a modului de fadeout, a gravitatii, etc. Aplicatia trebuie sa permita salvarea/incarcarea pe disc a efectelor.

    (1-2 studenti)

    9. Implementarea unui sistem de detectare a coliziunilor 3D

    Pentru realizarea unui motor fizic in timp real este necesara implementarea unui sistem de detectie a coliziunilor care sa fie in acelasi timp rapid cat si de o acuratete cat mai mare. Sistemul trebuie sa implementeze urmatorii 2 algoritmi de detectie a coliziunilor fiecare cu avantajele/dezavantajele lui:

  • bounding sphere collision detection - obiectele vor fi aproximate ca si incadrare cu niste sfere pentru care se vor executa calculele de coliziune

    triangle-to-triangle collision detection - determinarea daca doua triunghiuri se intersecteaza si determinarea punctelor de intersectie

    (1-2 studenti)

    10. Animatia caracterelor folosind interpolarea cadrelor cheie si skinning 3D

    (1-2 studenti)

    11. Modeller de obiecte folosind CSG (Constructive solid geometry)

    Primitivele folosite la crearea de obiecte sunt :

    cub sfera tor cilindru

    Aplicatia trebuie sa implementeze operatiile de

    reuniune diferenta intersectie

    Obiectele create vor putea sa fie salvate/incarcate de pe disc. Puteti folosi un format propriu.

    (1-2 studenti)

    12. Folosind programarea GPU realizati o aplicatie care sa permita editarea si simularea hainelor(cloth) si a parului (hair)

    (1-2 studenti)

    13. Generarea si renderizarea unui model atmosferic cat mai realist folosind programarea GPU. Se pot lua in considerare setarile locale referitoare la pozitia soarelui.

    (2 studenti)

    14. Generarea si renderizarea in timp real a norilor volumetrici folosind programarea GPU.

    (1-2 studenti)

    15. Simularea si vizualizarea in timp real a multimilor intr-un spatiu virtual extins. Se vor lua in considerare interactiunile multimilor cu obiecte dinamice, cu observatorul, etc.

  • (1-2 studenti)

    16. Implementarea de algoritmilor de photon mapping impreuna cu ray-tracing pentru iluminarea globala a unei scene 3D.

    (2 studenti)

    17. Corectii si reducere zgomot

    Reducerea zgomotului digital : Aparatele foto digitale functioneaza conform urmatorului principiu: razele de lumina patrund prin lentila si sunt focalizate pe o matrice de elemente fotosensibile ce poarta numele generic de senzor. Fiecare element din aceasta matrice, genereaza un curent proportional cu cantitatea de lumina receptionata. Practic, fotonii excita elementul fotosensibil generand electroni liberi ce intra in conductie. Din pacate insa, senzorul nu este sensibil doar la radiatii din spectrul vizibil, asa incat in informatia preluata de la senzor exista si zgomot. In conditiile in care intensitatea luminii este suficient de mare, acest zgomot este destul de redus, imaginiile produse fiind in general clare. In conditii slabe de iluminare insa, curentul produs de lumina vizibila raportat la curentul produse de alte radiatii este destul de scazut asa incat nivelul de zgomot este mare.

    Marirea sensibilitatii senzorului (ISO) pentru realizarea fotografiilor in conditii de iluminare slaba are ca efect amplificarea semnalului provenit de la senzor si ca urmare si amplificarea zgomotului. Asadar, pentru un ISO mai mare, zgomotul din fotografii va fi si el mai mare.

    ISO 80 ISO 400

    Camerele foto reduc automat acest zgomot prin algoritmi specifici. Din pacate acesti algoritmi tind sa reduca din detaliile pozelor, asa incat trebuie facut un compromis. Iata un exemplu de reducere excesiva a zgomotului:

  • Reducere excesiva a zgomotului

    Trebuie dezvoltat un algoritm de reducere a zgomotului digital. Acest algoritm va trebui sa reduca cat mai mult din acest zgomot, pastrand cat mai multe din detaliile fotografiei originale.

    Corectia automata a culorii: Am facut foarte multe fotografii in vacanta, insa din pacate nu toate au iesit asa cum ne-am dori. Cele mai frecvente probleme sunt expunerea defectuoasa, whitebalancing-ul incorect sau lipsa saturatiei culorii. Aceste probleme se pot corecta manual in Photoshop, insa pentru 1000 de poze spre exemplu, acest lucru ar lua foarte mult timp. Trebuie realizata o unelte de corectie automata a culorii fotografiilor. Corectiile vizeaza urmatoarele aspecte:

    Corectia expunerii:

    Subexpusa Expunere corecta Supraexpusa

  • Corectia white-balancing-ului:

    WB Corect WB Incorect

    Corectia saturatiei:

    Subsaturata Saturatie Corecta Suprasaturata

    Aceste corectii vor fi realizate automat, folosind algoritmi specializati ce analizeaza fotografia si stabilesc ce tip de corectii trebuie aplicate precum si parametrii necesari acestora.

    Corectia geometrica: Fotografiile prezinta adesea distorsiuni geometrice, pe de-o parte datorita lentilelor, pe de alta parte datorita perspectivei. In multe cazuri ne dorim corectarea acestor distorsiuni in vederea redarii corecte a geometriei obiectelor fotografiate.

    In cazul utilizarii lentilelor cu distanta focala mica (wide angle), fotografiile prezinta o distorsiune de tip barrel:

  • Distorsiune Barrel

    Tot lentilele cu distanta focala scazuta introduc o vizualizare perspectiva foarte pronuntata, uneori fiind necesare ajustari ale fotografiei in sensul obtinerii unei vizualizari aproape de tip ortografic:

    Distorsiune perspectiva Perspectiva corectata

    In cazul primului tip de distorsiune, corectia se poate face mai mult sau mai putin automat. Majoritatea lentilelor aparatelor foto sunt de tip zoom, adica dispun de un interval de distante focale. Distanta focala cu care a fost facuta o anumita poza este inregistrata in EXIF si poate fi citita in vederea determinarii severitatii distorsiunii de tip barrel, asa incat o astfel de corectie poate fi realizata automat.

    In cazul distorsiunii perspective, lucrurile nu mai sunt insa asa de simple, intrucat aceasta depinde de continutul pozei in sine. In situatii fericite, in urma unei analize a imaginii pot fi determinate automat linii convergente ce pot oferi o idee asupra perspectivei.

    Altfel, este nevoie de indicarea manuala a perspectivei, in vederea corectiei.

  • Trebuie realizat un instrument automat de corectie a distorsiunilor geometrice din imagini. Aceasta unealta va trebui sa corecteze automat distorsiunile de tip barrel pe baza informatiilor din EXIF (si eventual pe baza unei calibrari) si semiautomat distorsiunile de perspectiva. Se va incerca analiza imaginii in vederea determinarii liniilor de convergenta, iar daca acest lucru nu reuseste, utilizatorul va fi solicitat pentru indicarea parametrilor de corectie.

    (1-2 studenti)

    18. Simularea adancimii de camp

    Adancimea de camp reprezinta intervalul de adancime dintr-o fotografie aflat in focus. Acest parametru depinde de distanta focala a lentilei si de diafragma acesteia (aperture). Iata spre exemplu doua fotografii, dintre care prima are o adancime de camp mare, iar cea de-a doua o adancime de camp mai mica:

    Adancime de camp mare Adancime de camp mica

    Aparatele de tip consumer dispun de senzori mici, asa incat pentru obtinerea unei distante focale mari echivalent cu pelicula de 35 mm, sunt suficiente lentile de distanta focala foarte mica. De asemenea, diafragma maxima acestora este in general destul de redusa (tipic F2.8), asa incat este foarte greu sa obtinem o adancime de camp mica.

    Scopul acestui proiect este de a realiza o unealta de transformare a unei fotografii in vederea reducerii adancimii de camp. Tipic acest lucru se realizeaza in Photoshop prin blur selectiv si blending. Din pacate insa, efectul nu este atat de reusit, fiind departe de ceea ce s-ar obtine in realitate.

    Acest proiect se poate concretiza in doua feluri: o metoda automata de a detecta adancimea punctelor din imagine in vederea aplicarii metodei din Photoshop sau o metoda manuala ce presupune indicarea adancimii diverselor locatii din imagine si aplicarea unui algoritm care sa produca rezultate mai realiste decat Photoshop.

    (1 student)

  • 19. Reducerea purple fringing-ului

    Purple fringing-ul este o aberatie cromatica ce se datoreaza in principal refractiei luminii in lentila aparatului foto. Iata un exemplu:

    Purple Fringing

    In acest moment, nu exista multe unelte automate de corectie a acestui gen de defect. Cu toate acestea, acest lucru nu este foarte complicat, deoarece izolarea zonelor in care apare acest efect este in general destul de simpla. In urma acestei izolari, este suficienta apoi o corectie cromatica simpla. Scopul acestui proiect este de a realiza o unealta automata de corectie a purple fringing-ului.

    (1 student)

    20. Corectia automata a ochilor rosii

    Ochii rosii apar in fotografiile cu flash in urma reflexiei luminii de pe retina. Pentru ca retina este foarte vascularizata, culoarea reflexiei este rosie.

    Ochi rosii

  • Scopul acestui proiect este realizarea unei unelte de detectare automata si corectie a

    ochilor rosii dintr-o imagine. Acest lucru este in general destul de dificil, insa exista foarte multe studii pe subiect ce pot servi ca si punct de plecare.

    (1 student)

    21. Stabilizarea digitala a imaginii

    Pe masura ce camerele digitale au devenit din ce in ce mai mici, au devenit in egala masura din ce in ce mai greu de mentinut intr-o pozitie fixa in timpul filmarii. Pentru reducerea acestui efect deranjant, camerele folosesc in general accelerometre pentru dectectia miscarii in conjunctie cu o metoda de compensare a acestei miscari:

    - stabilizarea optica lentilele contin un element mobil ce poate fi deplasat pentru contracararea miscarii aparatului

    - stabilizare mecanica senzorul este deplasat pentru contracararea miscarii aparatului

    - stabilizarea digitala nu exista parti in miscare ci procesul este digital

    Scopul acestui proiect este de a realiza un stabilizator digital de imagine. Acest lucru presupune doua lucruri:

    1: analiza cadrelor consecutive in vederea detectiei pozitiei relative a acestora;

    2: alegerea unei zone din fiecare cadru asa incat sa se maximizeze aria suprapunerii acestora. Unealta ar trebui sa primeasca la intrare un film provenit de la o camera reala si sa genereze un film de rezolutie un pic mai scazuta, insa stabilizat digital.

    (1-2 studenti)

    22. Realizarea panoramelor

    Imaginile panoramice se pot obtine in general folosind lentile de distanta focala foarte mica, eventual in conjunctie cu oglinzi. O alta abordare insa este realizarea unui set de poze si alipirea lor ulterioara in vederea realizarii unei imagini mari.

  • Scopul acestui proiect este realizarea unui sistem de realizare automata a panoramelor prin alipirea de poze multiple. Acest lucru presupune:

    1. preprocesarea imaginilor in vederea corectarii eventualelor aberatii geometrice

    2. analiza imaginilor consecutive in vederea stabilirii pozitiei relative a acestora

    3. blending-ul imaginilor pentru realizarea unei imagini finale

    (1-2 studenti)

    23. Blending de imagini

    Blending-ul de imagini presupune imbinarea armonioasa a mai multor imaginii, in vederea obtinerii unor efecte de suprapunere:

    Imaginea initiala Blending cu fundal

  • Acest lucru este dificil intrucat simpla decupare si lipire genereaza contururi deranjante. In Photoshop, aceasta problema se rezolva prin selectiile gradientale (feather). Aceasta tehnica presupune blendingul treptat celor doua imagini.

    Aceasta nu este insa singura abordare. Scopul acestui proiect este de a dezvolta o unealta pentru a facilita blending-ul printr-o metoda cat mai automatizata de selectie a zonei decupate precum si de contopire in imaginea finala.

    (1-2 studenti)

    24. Identificarea sabloanelor

    O problema foarte des intalnita in procesarea de imagini 2D este identificarea unui anumit obiect intr-o imagine. Aceasta problema este complicata datorita faptului ca obiectul nu se regaseste niciodata identic in doua fotografii. Acest lucru se datoreaza conditiilor diferite in care fotografiile au fost facute (expunere, white balancing, etc), datorita perspectivei diferite sau chiar datorita obstructiei obiectului de catre alte obiecte.

    Scopul acestui proiect este de a realiza o metoda robusta si eficienta de identificare a sabloanelor in imagini 2D.

    (1-2 studenti)

    25. Identificarea fetelor

    Camerele web si mai nou chiar si camerele foto folosesc metode de identificare a fetelor din imagine. Camerele web folosesc aceasta facilitate pentru a realiza un zoom digital automat pe fata subiectului sau pentru aplicarea de overlay-uri 3D.

    Camerele foto folosesc detectia fetelor pentru a calcula mai precis focalizarea, expunerea si white balancing-ul. In ambele variante, sunt necesare metode robuste si foarte eficiente, date fiind constrangerile de timp real specifice acestor aplicatii.

  • Identificarea fetelor

    Scopul acestui proiect este de a identifica fetele umane in imaginile 2D. Acest lucru este destul de complicat, insa exista numeroase studii in acest sens ce pot servi ca si punct de plecare in abordarea proiectului.

    (1-2 studenti)

    26. Tracking

    O alta problema tipica in procesarea imaginilor 2D este urmarirea (tracking-ul) obiectelor intr-o flux de imagini. Spre exemplu, in cazul unei mingi de fotbal intr-o inregistrare video, este foarte util ca aceasta sa poata fi urmarita automat in vederea calcularii digitale a statisticilor meciului.

    Tracking

  • Scopul acestui proiect este de a realiza o unealta ce permite selectia manuala a unui anumit obiect, urmand ca acest obiect sa fie urmarit automat in cadrele urmatoare.

    Acest lucru ar fi de dorit sa se realizeze in timp real.

    (1-2 studenti)

    27. Randare stereo

    O metoda simpla de vizualizare a unei imagini in trei dimensiuni pe un ecran conventional este randarea unei scene 3D din doua viewpoint-uri corespunzatoare celor doi ochi. Cele doua imagini rezultate vor fi afisate separat pe ecran. Pentru vizualizarea lor 3D se poate folosi vederea libera (paralela sau cu ochii incrucisati) sau un ocular stereo ce se poate realiza simplu folosind cateva oglinzi.

    Randare stereo crosseye

    O alta metoda de vizualizare stereo foarte des utilizata este randarea anaglifa. Acest lucru presupune tot randarea din doua viewpoint-uri, insa cele doua imagini obtinute sunt colorate diferit si suprapuse. Vizualizarea se face folosind ochelarii speciali cu lentile colorate.

  • Randare anaglifa

    Scopul acestui proiect este de a realiza un API peste OpenGL pentru randarea 3D ce sa permita cele doua metode de randare. Folosind acest API, orice program conventional OpenGL va fi transformat intr-unul stereo 3D.

    28. Estimarea adancimii pe baza imaginilor stereo

    Creierul uman foloseste imaginea ce provine de la cei doi ochi, precum si informatii de perspectiva pentru a determina pozitia obiectelor in spatiu. In mod similar, daca dispunem de doua fotografii facute din doua pozitii diferite, putem determina informatia de adancime pentru fiecare punct din scena.

    Estimarea adancimii pe baza imaginilor stereo

    Scopul acestui proiect este de a estima adancimea punctelor dintr-o scena pe baza imaginilor stereo. Aceste estimari pot folosi apoi pentru schimbarea perspectivei de vizualizare, post procesare foto sau efecte 3D.

    (1-2 studenti)

  • 29. Editor de scene 3D

    Scopul acestui proiect este realizarea unui editor de scene 3D. Acesta va trebui sa puna la dispozitie facilitati de incarcare a modelelor in formate standard si o serie de unelte pentru realizarea unei scene 3D precum:

    - pozitionarea obiectelor in scena

    - pozitionarea unor surse de lumina

    - specificarea proprietatilor de material

    - maparea de texturi

    - randarea cu umbre si reflexii, etc.

    Editor de scene 3D

    (1-2 studenti)

    30. Sectionarea obiectelor 3D

    In multe situatii este necesara sectionarea unui obiect complex 3D. Problema in sine nu este asa de complicata, insa daca dorim ca suprafata expusa in urma taierii sa arate real, lucrurile devin foarte interesante. Spre exemplu: avem un kiwi si dorim sa-l taiem. In functie de taietura, sectiunea sa va arata intr-un fel sau in altul.

  • Scopul acestui proiect este urmatorul: se porneste de la un obiect (spre exemplu unkiwi) si o textura (cum arata fructul intr-o sectiune transversala). Utilizatorul realizeaza o taietura (pentru simplitate poate fi planara). Se doreste generarea celor doua parti ale fructului ca doua obiecte separate. Suprafetele rezultate in urma taierii vor fi texturate in functie de textura initiala si de unghiul de taiere.

    Sectiune 3D

    (1-2 student)

    31. Randari de diverse efecte speciale folosind shadere Randarea non-fotorealista sau NPR (Non Photorealistic Rendering) este o alta

    aplicatie interesanta ce poate fi implementata eficient pe GPU. Aceasta presupune alterarea luminii si culorii, aplicarea de efecte precum detectia contururilor etc. astfel incat scena finala sa fie randata intr-o maniera nerealista, artistica. Scopul acestui proiect este implementarea mai multor modele de NPR pe GPU.

    Randare non-fotorealista

  • Efect Fresnel : Variatia reflexiei luminii pe o suprafata in functie de unghiul de vizualizare poarta numele de efect Fresnel. Spre exemplu, daca priviti intr-o piscina dintr-un unghi foarte apropiat de 90o, puteti observa foarte bine interiorul ei. Daca apropiati insa capul de nivelul apei si priviti intr-un unghi foarte mic, veti observa cum suprafata apei devine aproape ca o oglinda.

    Efect Fresnel

    Scopul acestui proiect este de a realiza un Shader Fresnel pe GPU. Spre deosebire de modelele de shading conventionale, acesta va trebui sa permita variatia unor parametri precum reflexia, specularitatea, etc. cu unghiul de vizualizare.

    Etc

    (1-2 studenti)

    32. Adancime de camp

    Pentru a randa fotorealist o scena 3D, o proprietate importanta este adancimea de camp. Aceasta simuleaza proprietatea de focalizare a unei lentile prin blurarea punctelor aflate la adancimi diferite de adancimea de focus. Magnitudinea blur-ului va depinde de adancime, ca in imaginea de mai jos.

    Adancime de camp

  • Scopul proiectului este implementarea adancimii de camp pe GPU.

    (1-2 studenti)

    33. Procesare de imagini 2D

    In cazul in care se doresc prelucrate imagini 2D de rezolutii foarte mari, o idee interesanta este folosirea GPU-ului ca si coprocesor grafic. Astfel, filtre spatiale precum Canny, ce necesita un efort computational crescut vor putea beneficia de puterea de procesare a placii video.

    Filtru Sobel

    Scopul acestui proiect este de a realiza o aplicatie ce permite procesarea de imagini 2D folosind procesorul grafic. Practic, ceea ce se doreste este o interfata grafica ce permite incarcarea/salvarea de imagini in formate standard si o serie de filtre de culoare (luminozitate, contrast, prelucrari pe histograma) si filtre spatiale (blur, sharpen, edge detection) implementate ca si pixel shadere.

    (1-2 studenti)

    34. Face recognition

    Avand o baza de date cu poze reprezentand fete de oameni, sa se realizeze o aplicatie care porneste de la o fata si determina cu ce fete din baza de date se aseamana, si in ce proportie.

    (2 studenti)


Recommended