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

Progetto assegnato il 22/04/2016

Obiettivo

Sviluppare un "3D GAME" usando OpenGL (GL, GLU e GLUT/SDL) e linguaggio C/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 joypad);
  • 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 devono avere una texture applicata e almeno una 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 (opzionale)(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.) e la funzionalita' dal punto di vista grafico del codice realizzato. Si rammenti che il progetto e' sulla grafica 3D non sui videogiochi!

    Consegna

    Si richiede di consegnare un archivio cognome.tgz (tarato e zippato) contenente due cartelle:
  • la prima "project" con il codice sorgente e relativo Makefile per ambiente Linux/XWindow e file README contenente informazioni di installazione ed esecuzione;
  • la seconda "doc" 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 di spiegarlo.

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