1 / 20

Sectionarea obiectelor 3D

Sectionarea obiectelor 3D. Cernea Alina – 343 C4 Radulescu Lucian – 343 C4. Ideea implementarii :. Reprezentarea kiwiului ca un skydome dublu. Reprezentarea miezului ca un “triangle fan” (triunghiuri asezate ca feliile de pizza). Probleme si solutii:. 1. Textura 2. Cursivitatea texturii

aletha
Download Presentation

Sectionarea obiectelor 3D

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sectionarea obiectelor 3D Cernea Alina – 343 C4 Radulescu Lucian – 343 C4

  2. Ideea implementarii : • Reprezentarea kiwiului ca un skydome dublu. • Reprezentarea miezului ca un “triangle fan” (triunghiuri asezate ca feliile de pizza).

  3. Probleme si solutii: • 1. Textura • 2. Cursivitatea texturii • 3. Legatura intre clase (corp fruct si miez) • 4. Ajustarea taieturilor

  4. TexturaProbleme • Nu se potrivea textura pentru miez. • Nu am gasit textura pentru coaja.

  5. Textura [1]Solutii • Pentru miez, doar am ajustat dimensiunile imaginii texturate. • Pentru coaja, am decupat din doua imagini bucati de coaja. Aceste decupaje le-am suprapus cu un anumit grad de transparenta (40%). • Am scalat imaginea obtinuta si am facut un pattern pentru o imagine mai mare. ( I )

  6. Textura [2]Solutii • Am repetat pasul anterior de 2 ori. ( II & III ) • Am editat in Gimp imaginea, am adaugat nuante de culoare (verde / maro). ( IV ) • Am aplicat textura pe model pentru a obtine rezultatul final ( un kiwi ). ( V )

  7. I II III IV V

  8. 2. Cursivitatea texturiiProblema • Textura nu era cursiva. • Se puteau vedea liniile de taiere dintre diferitele bucati ale fructului.

  9. 2. Cursivitatea texturiiSolutia • O varianta a fost desenarea celei de-a doua jumatati a fructului in sens invers. • Am folosit functia glScalef(1,1,-1) pentru a rasturna apoi cea de-a doua jumatate. • Astfel linia de taietura a devenit invizibila.

  10. 3. Legatura intre clase Problema • Fructul este creat dintr-un obiect de tipul HalfKiwiSkin si mai multe obiecte de tipul Miez • Aceste obiecte trebuiesc mentinute in legatura permanenta, astfel incat orice modificare a corpului kiwiului sa lanseze modificarile corespunzatoare ale miezului.

  11. 3. Legatura intre clase Solutia • Clasa HalfKiwiSkin are o colectie de obiecte de tipul Miez, pe care le initializeaza in constructor. • Astfel, in desenarea obiectului putem apela functiile de transformare proprii ale clasei Miez. • Desenarea obiectelor Miez se face insa in main, dupa desenarea corpului fructului.

  12. 4. Ajustarea taieturilor [1] Problema

  13. 4. Ajustarea taieturilor [2] Problema • Initial varfurile ce conturau taietura nu reprezentau un cerc perfect. • Problemele se rasfrangeau si asupra pozitionarii miezului.

  14. 4. Ajustarea taieturilor Solutia • Recalcularea indicelui corespunzator varfului care inchidea perfect o banda din dom.

  15. Cum se poate dezvolta proiectul ? • Fiecare felie sau bucata din kiwi poate sa fie construita ca un obiect independent fata de celelalte. • Putem sectiona kiwi-ul si longitudinal (chiar in acelasi timp cu o sectiune transversala ); pentru aceasta implementare insa este bine sa folosim alta imagine de textura.

  16. Cateva detalii [1]de implementare • Am utilizat clasele HalfKiwiSkin si Miez. • Fiecare clasa implementeaza metodele de setare a pozitiei si de desenare.

  17. Cateva detalii [2] de implementare • In constructorul clasei HalfKiwiSkin se calculeaza efectiv varfurile si sliceurile jumatatii de kiwi. • In constructorul clasei Miez se seteaza raza si numarul de varfuri iar constructia efectiva si texturarea sunt implementate in metoda de desenare a clasei.

  18. Cateva detalii [3]de implementare • In Main.cpp se afla toate functiile care uploadeaza texturile. Tot aici se initializeaza instantele clasei HalfKiwiSkin. • Ca punct de plecare pentru intregul proiect am utilizat scheletul laboratorului 4.

  19. SFARSIT

More Related