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