This course introduces the fundamental principles and techniques for developing computer graphics and data visualization applications. The course has a theoretical-practical focus and is aimed at providing basic knowledge and acquiring the ability to use libraries and software tools to develop simple interactive applications. The course also provides the basis for addressing (in subsequent classes) related topics of greater complexity, such as geometric modeling and virtual reality
Learning basics of event-driven programming and how 2D and 3D computer graphics systems work. Learning the basic tools for creating interactive 2D computer graphics programs and for modeling and rendering 3D scenes.
The course aims to:
Provide both theoretical and practical knowledge to develop interactive applications that include 2D graphics output and/or data visualization;
Illustrate the principles behind geometric shape modeling and introduce tools for this purpose;
Provide the theoretical foundations of 3D graphics and dedicated hardware (GPU);
Introduce high-level tools for developing 3D graphics applications.
At the end of the course, the student will be able to:
Understand the fundamental principles of Event-Driven Programming (EDP);
Understand the fundamental principles of 2D and 3D computer graphics;
Understand the basic principles of 3D polygonal modeling;
Develop simple interactive 2D graphics applications;
Use a geometric modeling system at a basic level;
Use a high-level system for creating 3D scenes at a basic level.
Imperative and object-oriented programming (C++ or similar languages)
Lectures (approximately half of the course)
Guided lab sessions (the other half): the exercises will preferably take place in the classroom using the students' personal computers.
Overview of Computer Graphics and its applications
The Event-Driven Programming (EDP) paradigm
Interactive 2D graphics: application examples using an EDP library
Elements of data visualization and examples
3D geometric modeling: polygonal models (meshes)
Examples of creating polygonal models
3D graphics: ray tracing paradigm
3D graphics: GPU and rasterization paradigm
Examples of 3D graphics applications
Textbooks are not strictly required. Most of the materials will be provided by the instructor or available online:
https://www.sfml-dev.org/
https://www.blender.org/
https://www.shadertoy.com/howto
For further reading: Steve Marschner, Peter Shirley, Fundamentals of Computer Graphics, Fourth Edition, CRC Press.
Ricevimento: Appointment by email: enrico.puppo@unige.it During class period appointments for groups can be set by posting on the course forum on AulaWeb.
ENRICO PUPPO (President)
PAOLA MAGILLO
CLAUDIO MANCINELLI (President Substitute)
According to the calendar approved by the Degree Program Board: https://corsi.unige.it/en/corsi/8759/studenti-orario
Final project on one of the topics covered during the guided workshops.
Oral exam.
Guidelines for students with certified Specific Learning Disorders, disabilities, or other special educational needs are available at https://corsi.unige.it/en/corsi/8759/studenti-disabilita-dsa
The final project aims to assess the practical skills of the student in relation to the libraries and software systems covered in the guided exercises.
The oral exam aims to assess the student's knowledge of the fundamental principles of computer graphics, polygonal modeling, and all other topics covered in the lectures.
For further information, please refer to the course’s AulaWeb module or contact the instructor.