Grafica (C.d.S. Magistrale in Informatica) A.A.2011/12
Fondamenti di Computer Graphics (C.d.S. Magistrale in Ingegneria Informatica) A.A.2011/12

Progetto assegnato il 18/05/2012

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 caricato da file. Si definisca un'opportuna scenografia colorando/illuminando 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 devono essere visualizzati in proiezione prospettica);
  • input utente (si gestisca l'interazione 3D usando sia la tastiera che il mouse e se si possiede, anche joystick; per compatibilita' e' meglio non usare la rotella del mouse);
  • 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)
  • navigazione nella scena (il giocatore deve avere un indicatore visuale (mappa) di dov'e' e dove puo' andare);
  • 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.);
  • advanced rendering (da menu' si preveda l'attivazione/disattivazione di almeno una tecnica di resa avanzata realizzabile in opengl come per esempio: anti-aliasing, ombre, trasparenze, riflessioni, bump-mapping, 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 contenente due cartelle:
  • 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 almeno 40 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 carino che funziona, ma non capite perche', non lo usate; vi potrebbe essere chiesto all'esame.

    Avvertenza 2

    Non si possono usare librerie aggiuntive a quelle indicate nelle specifiche, pena la non accettazione del progetto; si possono invece utilizzare librerie messe a vostra disposizione durante il corso (per esempio la libreria glm si puo' usare).