Costruzione di Interfacce aa 03/04docente: Paolo
Cignoni |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ObiettiviConcetti e le tecniche di base per la progettazione di applicazioni grafiche tridimensionali interattive. DescrizioneIl corso introduce alle problematiche relative alla progettazione e realizzazione di applicazioni interattive che facciano uso di grafica tridimensionale. Vengono fornite le basi teoriche e algoritmiche per la modellazione geometrica e il rendering di scene tridimensionali e gli strumenti per realizzare sistemi basati su OpenGL in ambiente Windows. Programma
OrarioRicevimento, su
appuntamento, preferibilmente il lun/mer/ven in tarda mattinata, nel
mio ufficio presso l'ISTI all'Area CNR, o per chi non vuole spostarsi,
dopo la lezione nei lab del polo didattico marzotto. Forum
http://it.groups.yahoo.com/group/CostruzioneDiInterfacce/ Per tutte le domande riguardanti i temi del corso ho messo su un forum su yahoo. Vi chiedo di mandare le vostre domande li' dove le risposte potranno essere consultate anche da altri. Usate il mio indirizzo di l'email per ricevimenti e simili. Ovviamente potete anche rispondere a quesiti posti da altri studenti, nel qual caso, terro' in buona considerazione il fatto. Quando sollevate un problema nel forum e poi lo risolvete da soli e' buona educazione dire a tutti come avete fatto.
Il compitino
Riferimenti bibliograficiGrafica
C++
Materiale DidatticoSoftware Come studenti del corso dovreste aver diritto ad una licenza studenti di Windows XP Professional e di Visual Studio .Net e Qt per windows. Per la distribuzione del software di Visual.Studio .Net dovete contattare direttamente gli operatori. Dovrebbe essere necessario che abbiate attivato l'account per CI. Maggiori info a proposito della distribuizione del software cui avete diritto le trovate a http://www.cli.di.unipi.it/prestiti. OpenGL
SDL
Archivi di modelli 3d da saccheggiare Librerie varie:
FAQQ: Come faccio ad iscrivermi al forum del
corso? Q: Non mi va qualcosa nel progetto, come
devo mandarle i sorgenti? Q: Come faccio a settare l'ambiente QT
sulle macchine del dipartimento? Q: Ho sentito parlare di Compitino come
funziona? Q: Ho fatto il corso di CI l'anno scorso,
che progetto devo fare? Q: Come funziona il progetto quest'anno? Q: Possiamo fare il progetto da soli? Q:Posso fare il progetto in: Java || C# ||
Delphi || linguaggio != C++ ? Q: Come faccio per avere/installare XP .Net? Q: Sono del vecchio ordinamento, dovrei
fare IUF+IUP ma non ci sono piu', che faccio? Q: Posso usare un'ide diversa da .net (e.g.
.net 2003, Visual Studio 6.0 Borland, Kdev ecc)? Q: Non c'ero il primo giorno di lezione
come faccio ad avere l'estensione dell'account per questo corso? Q: Ho fatto un programma e non funziona.
Come mai? Il ProgettoIl progetto finale di Costruzione di Interfacce ha come oggetto la realizzazione di due applicazioni e una pagina web di descrizione del progetto. Le due applicazioni devono essere scritte in C++ e devono sfruttare OpenGL per il rendering tridimensionale e in pratica costituiscono un semplice gioco a livelli e l'editor necessario per costruire i livelli. Le due applicazioni quindi si integrano a vicenda, la prima applicazione, detta game editor, ha un'interfaccia più complessa, che deve essere realizzata in QT, ed ha come finalità la creazione di livelli che dovranno essere utilizzati dalla seconda applicazione detta game player e che e' un videogioco dalla struttura ragionevolmente semplice in cui gli elementi del gioco sono 3D. Nota, non e' necessario che il gioco sia inerentemente tridimensionale, pacman in cui gli elementi sono 3d, ma che si svolge come sempre su di un piano va bene. Certo se il gioco e' inerentemente 3D non guasta. Puo' esservi richiesto esplicitamente se il gruppo e' di 3 o 4 persone. Normalmente capiterà che il game editor sia di gran lunga la più complessa delle due applicazioni, e deve condividere con il player il codice per visualizzare in opengl i livelli in una modalita preview. Ovviamente l'editor userà opengl per mostrare il documento durante l'editing e QT per le parti di interfaccia fuori dal contesto opengl. L'editor deve permettere di visualizzare e modificare l'area di gioco permettendo di aggiungere, selezionare, modificare, e cancellare elementi del gioco come ad esempio ostacoli o nemici. La selezione degli elementi deve avvenire per semplice click sugli oggetti in questione. I livelli cosi' costruiti devono poter essere salvati e ricaricati dall'editor. I file salvati devono essere in formato xml. Si puo' assumere che il piano di gioco sia discretizzato in una griglia di dimensione fissabile dall'utente e che gli elementi del gioco possano essere piazzati solo in posizioni discrete. Il player sara' un’applicazione fullscreen basata su SDL che dopo qualche schermata di intro permette semplicemente di giocare in sequenza i livelli creati. Ricordatevi che il vostro ruolo è quello di progettare e realizzare un'applicazione e non quello di disegnare/modellare oggetti e icone. Anche se è divertente non perdete troppo tempo a disegnare i modelli 3d del progetto, prendeteli pure dalla rete. La scelta del progetto è ragionevolmente libera (purché ovviamente rispecchi quanto detto sopra), comunque prima di mettervi a delineare con precisione le specifiche del vostro progetto è meglio che veniate a fare due parole con me, al termine della lezione, per sapere se, a grandi linee, il progetto è ben proporzionato. In mancanza di idee potete scegliere uno degli Esempi di Progetto. In ogni caso quando iniziate il progetto mandatemi una mail con:
Il progetto viene consegnato masterizzato su CD che rimane al docente. Il CD contenente il progetto deve contenere un documento hmtl che descrive l'applicazione con:
La documentazione minima consiste in un documento html con una descrizione del progetto e un breve tutorial step-by-step di una tipica sessione d'uso del sistema. Il progetto deve essere realizzato in gruppo (da due a quattro persone), ovviamente più il gruppo è numeroso più mi aspetto sia consistente il progetto. Non mettete installatori automatici. Lo zip con il codice e' sufficiente. Esempi di Progetto:Labirinto: Simulazione di un antico gioco da bar anni 60/70. Il giocatore deve attraversare con una pallina un labirinto che è sparso di trabocchetti (buche, calamite, colla, ghiaccio). Il giocatore controlla la pallina cambiando, con il mouse, l'inclinazione del piano del labirinto. L'editor permette di costruire il labirinto e di piazzare i vari trabocchetti, e di configurare l'apparenza visiva (colore texture ecc) degli elementi del gioco. Pacman-Like: Gioco di labirinto con palline da raccogliere e nemici che inseguono (con ben scarsa IA), vari bonus e varianti. Al solito l'editor permette di costruire il labirinto piazzare le palline da raccogliere, i bonus, le posizioni di partenza dei nemici, ecc Pengo-Like: Gioco di labirinto del genere in cui il player deve allineare 3 o piu' blocchi senza incartarsi, per piu' dettagli guardatevi il gioco omonimo. Editor al solito.
Come valuto il progettoIn ordine di importanza:
|
Orario
|
Aggiornato Tuesday 09 December 2003alle 18.42