La Computer Graphics (CG) si occupa di un insieme di tecniche e strumenti informatici che permettono la creazione/modifica di immagini digitali attraverso il computer. Le applicazioni della CG coprono uno ampio spettro di settori, che vanno dall'industria del cinema e della televisione a quella dei videogiochi, product design, l'ambito medico, industriale e editoriale e la computer art.
Il corso intende fornire agli allievi conoscenze di base e avanzate nel campo della grafica per elaboratori e della multimedialità, mostrando sia gli aspetti teorici principali, sia le applicazioni pratiche più comuni. Una parte del corso sarà dedicata a fornire le conoscenze tecniche, teoriche e pratiche, per lo sviluppo di interfacce utente di tipo grafico. Partendo dall'analisi delle modalità di interazione uomo/macchina si intende esaminare la struttura generale di un'interfaccia grafica, in termini di componenti elementari e loro composizione
Computer Graphics (CG) deals with a set of computer techniques and tools that allow the creation/editing of digital images through the computer. The applications of CG cover a wide spectrum of fields, ranging from the film and television industry to the video game industry, product design, medical, industrial and editorial fields and computer art.
The course aims to provide students with basic and advanced knowledge in the field of computer graphics and multimedia, showing both the main theoretical aspects and the most common practical applications. A part of the course will be dedicated to provide the technical, theoretical and practical knowledge for the development of graphic user interfaces. Starting from the analysis of the man/machine interaction modalities, the general structure of a graphical interface will be examined, in terms of elementary components and their composition.
Obiettivo del corso è far acquisire allo studente la comprensione di un sistema grafico sia dal punto di vista software che hardware. Inoltre, lo studente imparerà ad analizzare, progettare e valutare interfacce grafiche 2D. In particolare, lo studente acquisirà la:
- Conoscenza delle caratteristiche della fisiologia del sistema visivo e la loro influenza sulla progettazione e sviluppo di sistemi grafici
- Conoscenza dei fenomeni di trasporto dell’energia luminosa e dei modelli di rappresentazione dei colori
- Capacità di analizzare architetture hardware dei sistemi grafici
- Conoscenza dei principali formati delle immagini grafiche e capacità di valutare le prestazioni di algoritmi di compressione con e senza perdita
- Conoscenza delle principali tecniche di modellazione 3D
- Conoscenza delle principali tecniche di rendering
- Conoscenza delle tecniche per l'analisi e la progettazione di interfacce grafiche
- Abilità nell'analizzare e progettare la logica di un programma combinando le azioni dei singoli componenti
- Abilità nell'usare azioni con vincoli temporali per la realizzazione di interfacce
- Conoscenza delle principali classi Java per la realizzazione di interfacce 2D
- Capacità di comprensione delle problematiche legate all'ergonomia e all'usabilità delle interfacce grafiche e capacità di applicare regole di "buona progettazione" per il progetto
The goal of the course is to provide students with the comprehension of a graphics system, from both the software and hardware point of views. Moreover, students will learn to analyze, design, implement, and evaluate 2D graphics user interfaces. In particular, students will acquire the:
- knowledge of the human visual system and how its characteristics influences the design and development of graphics systems
- knowledge of light energy transport and color representation models
- ability to understand and analyze the architectures of hardware graphics systems
- knowledge of the main graphic image formats and the ability to evaluate the performance of (lossy and lossless) compression algorithms
- knowledge of the main 3D modeling techniques
- knowledge of main rendering algorithms
- knowledge of techniques for the analysis and the design of GUI programs
- ability to analyze and design a program logic by combining elementary behaviors
- ability to use temporal constrained actions to implement interfaces
- knowledge of basic Java classes for 2D GUI programming
- ability of understanding issues related to usability and user centered design of GUIs and ability to use "best practice" rules for the design.
Gli studenti devono possedere nozioni di base sulla programmazione strutturata e ad oggetti
Basics knowledge of structured and object-oriented programming
Argomenti trattati nelle lezioni e relativo peso in crediti.
- Fisiologia del sistema visivo, percezione della luce e sistemi di rappresentazione dei colori (1 cr)
- Architetture hw e sw dei sistemi grafici, periferici e dispositivi di visualizzazione (1,5 cr)
- Tecniche di modellazione, shading e rendering (2,5 cr)
- Formati grafici e primitive di uscita (1 cr)
- Tecniche di analisi e di progetto delle interfacce grafiche (1.5 cr)
- Analisi degli elementi base per la realizzazione di GUI (1.5 cr)
- Classi Java per lo sviluppo di GUI (2,5 cr)
- Ergonomia e usabilità (0,5 cr)
Main topics
- Human visual system physiology, light perception, color representation models (1 cr)
- HW & SW architecture for graphic systems, peripherals and visualization devices (1,5 cr)
- 3D modeling, shading, and rendering techniques (2,5 cr)
- Graphic formats and output primitives (1 cr)
- GUI analysis and modeling techniques(1.5 cr)
- GUI widgets (1.5 cr)
- JAVA classes for GUI development (2,5 cr)
- Ergonomics and usability (0,5 cr)
Le esercitazioni sperimentali di laboratorio comprendono (i) la modellazione e rendering di scene 3D e (ii) la progettazione e lo sviluppo di interfacce grafiche. Sono previste diverse esercitazioni di laboratorio che possono essere svolte anche in team di 2-3 studenti. Le esercitazioni di laboratorio saranno propedeutiche allo sviluppo di progetti, individuali o di gruppo, che concorreranno a determinare il voto finale.
Nel caso la didattica di erogazione in remoto della didattica, anche i laboratori si svolgeranno con tale modalità.
Laboratory exercises include (i) modeling and rendering 3D scenes and (ii) designing and developing graphical interfaces. Assignments can be possibly performed in student teams composed by 2-3 members. These assignments will be propaedeutic to the development of more complex individual or group projects that will contribute to the final mark.
In the case of remote (online) teaching, the laboratories will also take place online.
I testi, scelti tra quelli elencati, saranno comunicati a lezione dal docente titolare dell'insegnamento
- Foley, Van Dam, Introduction to Computer Graphics, 1997, Addison Wesley
- Alan Watt, 3D computer Graphics, 2000, Addison Wesley
- John Zukowski, The Definitive Guide to Java Swing, 2005, APress
- Mauro Marinilli, Professional Java User Interfaces, 2006, John Wiley & Sons
- Romain Guy, Filthy Rich Clients: Developing Animated and Graphical Effects for Desktop Java Applications, 2007, Prentice Hall
- Materiale e documentazione su Blender: http://www.blender.org
- dispense del corso sul sito della didattica: http://didattica.polito.it
- Foley, Van Dam, Introduction to Computer Graphics, 1997, Addison Wesley
- Alan Watt, 3D computer Graphics, 2000, Addison Wesley
- John Zukowski, The Definitive Guide to Java Swing, 2005, APress
- Mauro Marinilli, Professional Java User Interfaces, 2006, John Wiley & Sons
- Romain Guy, Filthy Rich Clients: Developing Animated and Graphical Effects for Desktop Java Applications, 2007, Prentice Hall
- Blender documentation: http://www.blender.org
- Course handouts and other material at http://didattica.polito.it
Slides; Esercizi; Esercizi risolti; Esercitazioni di laboratorio; Video lezioni dell’anno corrente; Video lezioni tratte da anni precedenti; Strumenti di collaborazione tra studenti;
Lecture slides; Exercises; Exercise with solutions ; Lab exercises; Video lectures (current year); Video lectures (previous years); Student collaboration tools;
E' possibile sostenere l’esame in anticipo rispetto all’acquisizione della frequenza
You can take this exam before attending the course
Modalità di esame: Test informatizzato in laboratorio; Prova scritta (in aula); Prova orale obbligatoria; Elaborato progettuale in gruppo;
Exam: Computer lab-based test; Written test; Compulsory oral exam; Group project;
...
ESAME IN PRESENZA
L'esame prevede una verifica separata per la parte di Interfacce grafiche e per quella di Computer Grafica.
La verifica di Interfacce Grafiche consiste in una prova scritta di programmazione (2h, voto in trentesimi) e una sua successiva discussione orale.
La parte di Computer Grafica può essere svolta in due modalità:
(i) attraverso uno scritto con domande teoriche ed esercizi su tutto il programma di esame (2h, voto in trentesimi),
(ii) tramite lo sviluppo di un progetto di gruppo (15 punti), una presentazione su un argomento di approfondimento delle tematiche viste al corso (5 punti) e una verifica dell’acquisizione delle nozioni di teoria (1h, 12 punti). Questa modalità prevede dei vincoli per il completamento del progetto, che deve essere consegnato entro la fine della sessione estiva.
Il voto complessivo dell'esame è dato dalla media dei voti della parte di IG e di quella di CG se entrambe sono sufficienti (voto >= 18). I voti conseguiti per una delle due parti rimangono validi (anche per a.a. successivi)
Gli studenti e le studentesse con disabilità o con Disturbi Specifici di Apprendimento (DSA), oltre alla segnalazione tramite procedura informatizzata, sono invitati a comunicare anche direttamente al/la docente titolare dell'insegnamento, con un preavviso non inferiore ad una settimana dall'avvio della sessione d'esame, gli strumenti compensativi concordati con l'Unità Special Needs, al fine di permettere al/la docente la declinazione più idonea in riferimento alla specifica tipologia di esame.
Exam: Computer lab-based test; Written test; Compulsory oral exam; Group project;
FACE-TO-FACE EXAM
The final exam is aimed at assessing both the Computer Graphics and the User Interface parts as follows. Graphic Interface assessment consists of a written programming test followed by an oral discussion. The Computer Graphics assessment can be done in two ways: (i) through a written exam that includes theoretical questions and exercises, (ii) developing a project and assessing the acquisition of the theoretical notions.
Laboratory assignments for both topics (CG/UI) will also contribute to the final exam mark
REMOTE EXAM
In case the examination is carried out remotely, structure, rules and procedures remain unchanged.
As for Computer Graphics, the written tests, and any presentations and discussions of the projects will all take place online.
In addition to the message sent by the online system, students with disabilities or Specific Learning Disorders (SLD) are invited to directly inform the professor in charge of the course about the special arrangements for the exam that have been agreed with the Special Needs Unit. The professor has to be informed at least one week before the beginning of the examination session in order to provide students with the most suitable arrangements for each specific type of exam.