Grafica_RTR(C.d.S. Informatica)

Progetto assegnato l' 11/05/2009

Obiettivo

Sviluppare un "3D GAME" usando OpenGL (GL, GLU e GLUT/SDL) e linguaggio C (o C++) in ambiente PC/Linux.

Gruppi di lavoro

Il progetto e' individuale, ma si puo' collaborare per imparare insieme.

Testo

Si progetti ed implementi un videogioco 3D interattivo composto da almeno un oggetto principale di tipo mesh poligonale + geometria GL. Si definisca un'opportuna scenografia colorando e texturando gli oggetti della scena. Sono banditi i videogioco denominati ''sparatutto'' e ''labirinti'' e caldeggiati i videogiochi "automotive 3D games" (per esempio "3D Car Racing Games")!!

Richieste grafiche obbligatorie

  • geometria 3D e vista (gli oggetti 3D devono essere visualizzati in proiezione prospettica);
  • input utente (si gestisca l'interazione 3D usando sia la tastiera che il mouse; meglio non usare la rotella del mouse);
  • navigazione nella scena (il giocatore deve avere un indicatore visuale di dov'e' e dove vuole andare o dove e' stato);
  • pannello di controllo su schermo (si preveda un pannello di controllo in cui usando testo e grafica 2D si visualizzino le funzioni utente, lo scoreboard, ecc.);
  • illuminazione e sfumatura (gli oggetti 3D devono essere illuminati da almeno una luce);
  • texture mapping, sia dando le coordinate texture, che generandole in modo automatico (almeno due oggetti 3D del videogioco devono avere applicata una texture e almeno una texture deve essere una foto personale)
  • advanced rendering (da menu' si preveda l'attivazione/disattivazione di una tecnica di resa avanzata realizzabile in opengl come per esempio: mipmapping, environment mapping, blending, anti-aliasing, shadow, ecc.)

    Elementi di Giudizio

    Elementi qualificanti il progetto saranno l'originalita' delle scelte (tipo di gioco, oggetti, scenografia, texture, ecc.), le difficolta' di realizzazione, la funzionalita', dal punto di vista grafico, del codice realizzato. Si rammenti che il progetto e' sulle OpenGL non sui videogiochi!

    Consegna

    Si richiede di consegnare un archivio .tgz o .zip contenente due directory:
  • la prima con il codice sorgente e relativo Makefile per ambiente Linux/Xwindow ed eventualmente un file README contenente informazioni di installazione ed esecuzione;
  • la seconda dovra' contenere una relazione in html sul progetto realizzato (descrizione del videogioco e suo utilizzo, spiegazione delle scelte effettuate, funzionalita' OpenGL utilizzate, particolarita').
    Il progetto deve essere consegnato per e-mail o comunicando da dove scaricare l'archivio almeno 10 giorni prima della data d'esame.
    Per il progetto si stimano necessarie circa 80 ore di lavoro.

    Avvertenza 1

    Non e' vietato "guardare" codice esistente, anzi si caldeggia di farlo, ma per imparare e non per plagiare! Se trovate qualcosa di interessante che funziona, ma non lo capite, non lo usate.

    Avvertenza 2

    Non si possono usare librerie aggiuntive a quelle indicate nelle specifiche, pena la non accettazione del progetto.