Sunteți pe pagina 1din 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)

- 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)

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