|
Attenzione: da martedi' 2/11/04 fino a nuovo ordine le lezioni del martedi' cominciano alle ore 9:00!!!!!
Turni di laboratorio a FREQUENZA OBBLIGATORIA
- giovedì 14/10/04 ore 11-13 in SW2
- martedì 19/10/04 ore 9-11 in SW2
- giovedì 21/10/04 ore 11-13 in SW2
- giovedì 4/11/04 ore 11-13 in SW2
- giovedì 18/11/04 ore 11-13 in SW2
- giovedì 25/11/04 ore 11-13 in SW2
- giovedì 2/12/04 ore 11-13 in SW2
- giovedì 9/12/04 ore 11-13 in SW2
- giovedì 16/12/04 ore 11-13 in SW2
Ricevimento studenti: mercoledì 14:30-16:30
Pre-requisiti
Per seguire questo corso è necessario avere assimilato i concetti
e le nozioni seguenti (tra parentesi i corsi di riferimento):
-
Linguaggio C, strutture dati di base (Programmazione)
-
Strutture dinamiche, puntatori (Algoritmi e strutture dati)
-
Programmazione Object Oriented (Linguaggi di programmazione)
-
Programmazione event-driven, progrttazione di interfacce (Interfacce utente)
-
Vettori, matrici, trasformazioni di coordinate (Geometria) - Auspicabile
ma non indispensabile
Obiettivi
-
Apprendimento dei fondamenti teorici, delle tecniche e delle metodologie
necessarie alla progettazione e realizzazione di applicazioni interattive
di grafica tridimensionale (3D)
-
Elementi di strutture dati ed algoritmi per la modellazione geometrica
e la modellazione di scene 3D
-
Apprendimento ed uso di strumenti per la progettazione di sistemi grafici
interattivi basati su C++, OpenGL e GLUT in ambiente Linux
Orario
-
Martedì 8-11 Aula 505
-
Giovedì 11-13 aula 505
-
Laboratorio SW1 al posto di una delle lezioni (su avviso del docente)
Testi consigliati
Tutti i testi (esclusi quelli in rete) dovrebbero essere disponibili in
biblioteca.
Testo base per la computer graphics:
-
Edward Angel, 1999, Interactive Computer Graphics: A top-down approach
with OpenGL (2nd edition) Addison Wesley, ISBN: 020138597X
Testi di approfondimento per la computer graphics:
-
Foley, van Dam, Feiner, Hughes, Computer Graphics Principles and Practice
(Second edition in C), 1996, Addison Wesley, 1175 pages.
-
Hearn, Baker, Computer Graphics (2nd edition), 1994, Prentice Hall, 652
pages.
-
Hill, Computer Graphics using Open GL, 2000, Prentice Hall, 922 pages.
Testo base per OpenGL:
-
Mason Woo, Jackie Neider, Tom David, Dave Shriner, 1999, OpenGL 1.2 Programming
Guide, 3rd edition: the official guide to learning OpenGL, Version 1.2,
Addison Wesley, ISBN:0201604582
Testo base per GLUT:
Testo di base per GLUI:
Testo base per C++:
-
M. Black, Java to C++ transition tutorial: www.cs.brown.edu/courses/cs032/resources/C++tutorial.html
-
B. Stroustrup, The C++ Programming Language (3rd edition). Addison
Wesley Longman, Reading, MA. 1997. ISBN 0-201-88954-4. 920 pages
disponibile anche in italiano:
B. Stroustrup: C++ Linguaggio, Libreria Standard, Principi di Programmazione
3a Edizione, Addison Wesley Italia, 1015 pagine, 2000, ISBN:8871920783.
1015 pagine
oppure:
S. Oualline, C++ Corso di programmazione, O’Reilly-Jackson libri, 1998,
ISBN: 88-256-1022-X. 558 pagine.
Va bene qualunque altro manuale di C++
Materiale didattico
Per il materiale di laboratorio fare riferimento alla pagina apposita.
Lezioni:
Risorse software:
OpenGL
-
La pagina principale www.opengl.org
(notizie utili, documentazione. C'è anche il software open source
di prova, ma non è consigliato)
-
Mesa (versione public domain di OpenGL): http://www.mesa3d.org
(download sw. consigliata)
GLUT
Regolamento ed Esami
Il corso prevede lezioni in aula e attività di laboratorio guidato.
Le attività di laboratorio guidato vanno seguite singolarmente o a gruppi di al più due persone e sono
a frequenza obbligatoria:
- sarà rilevata la presenza degli studenti in laboratorio;
-
uno studente può sostenere l'esame solo se ha partecipato ad almeno il 50% delle attività di laboratorio guidato;
- non si prevede nessuna forma di recupero, pertanto chi non frequenta il minimo richiesto delle attività di laboratorio guidato non potrà sostenere l'esame durante questo anno accademico.
Le attività di laboratorio guidato si terranno una volta la settimana, presumibilmente a turno unico e in orario di lezione, a partire dalla seconda settimana di ottobre 2004.
Il calendario dettagliato sarà sia annunciato a lezione che pubblicato su questa pagina web con almeno una settimana di anticipo su ogni lezione di laboratorio.
L'esame consiste di:
- alcune (indicativamente cinque) prove in itinere, di carattere pratico, da completare e consegnare
individualmente durante lo svolgimento del corso.
- Queste prove consisteranno essenzialmente nel completamento di esercizi incominciati durante i laboratori guidati
- Il carico di lavoro previsto sarà moderato (tali da non generare conflitti con la frequenza alle lezioni degli altri corsi, nell'ambito del coordinamento tra i corsi stessi)
- La scadenza per la consegna di una ogni prova sarà comunicata contestualmente con l'assegnazione della prova stessa.
- Testi delle prove e scadenze saranno pubblicati su questa pagina web o su quella di laboratorio.
- una prova orale, che può prevedere sia domande sulla teoria che lo svolgimento di esercizi.
Per le date degli esami vedere il
web
FAQ
Q: Ho scelto il curriculum software/sistemi quindi non ho fatto
MC2 e geometria. Posso lo stesso seguire questo corso?
A: Sì. Potrebbe essere necessario studiare un pochino
di più per capire le trasformazioni di coordinate.
Q: Come mi procuro OpenGL/MESA e GLUT?
A: Vedere i link nella sezione materiale didattico.
Q: Posso fare il progetto in un linguaggio diverso da C++ e/o
con un’API diversa da OpenGL e/o con un toolkit diverso da GLUT?
A: NO. Si devono usare tutte queste risorse e nessun altra non
esplicitamente proposta nell’ambito del corso.
Q: Posso sviluppare in ambiente Windows?
A: Sì, purché il progetto poi compili e funzioni
anche in ambiente Linux. Le risorse necessarie a sviluppare sono disponibili
(gratis) anche sotto Windows. Non si accetterà però nulla
che non funzioni sotto Linux.
Q: Le lezioni/labo si sovrappongono con quelle di altri corsi
che seguo. Cosa posso fare?
A: Se il problema è il labo, possiamo cercare di cambiarvi
di turno. In generale: se siete in una situazione “standard” fatecelo presente
e vedremo di modificare gli orari se possibile. Se invece siete in una
situazione particolare (esami indietro, lavoro, …) fatecelo presente lo
stesso, ma non credo potremo farci granché.
Q: Ho fatto un programma e non funziona. Come mai?
A: Quando qualcosa non funziona siate, per favore, precisi.
Cosa fallisce? compilazione, linking, esecuzione. Se fallisce la compilazione
o il linking, non arrendetevi subito: leggete i messaggi del compilatore
riguardo all'errore e cercate di capire perché non compila. Se fallisce
durante l'esecuzione usate il debugger per vedere dove avviene il fallimento
del programma. Se non riuscite da soli, provate a chiedere aiuto ad un
collega. Se anche questo tentativo fallisce, segnatevi dettagliatamente
come avviene il fallimento e, insieme ai colleghi con cui avete provato,
venite a chiederci aiuto. Negli orari di ricevimento! |
Pre-requisiti
Obiettivi
Orario
Testi di Riferimento
Materiale didattico
Laboratorio
Esami
FAQ
|