Computer Graphics
A.Y. 2022/2023
Learning objectives
The course has the goal of introducing the basic notions of 3D modeling and rendering, in the context of computational graphics. It also presents the main data structures for the digital representation of three-dimensional objects, as well as rendering algorithms, which are used to synthesize digital images that depict the modeled objects (either in real time or offline). The course also presents common software tools and formal languages used in this field.
Expected learning outcomes
Students are expected to acquire the notions of Computer Graphics that will allow them to correctly identify an appropriate solution to a given problem that requires digital modeling of three-dimensional objects and their visualization (in any of the many possible fields of application). Furthermore, the acquired mathematical, algorithmic and data-structure principles will provide a starting point for the implementation of the identified solution.
Lesson period: Second semester
Assessment methods: Esame
Assessment result: voto verbalizzato in trentesimi
Single course
This course cannot be attended as a single course. Please check our list of single courses to find the ones available for enrolment.
Course syllabus and organization
Single session
Responsible
Lesson period
Second semester
Course syllabus
* [-] Intro
PART I: modelling 3D structures
** [M] Modelli 3D: intro and properties
** [M] Point Clouds [data structure and operations]
** [G] Vector and Point algebra [recap]
** [M] Meshes [attributes, normals, indexed structures]
* [M] Meshes [processing in brief: simplification & remeshing]
* [M] Meshes [processing in brief: smooth, denoise, clean]
* [M] Meshes [half-edges based structures]
** [M] Meshes: textures & UV mapping.
* [G] Superfici: normals, curvature, smoothness.
** [M] Subdivision surfaces
* [M] Height fields / Range Maps
** [M] Parametric curves [Bézier curves]
* [M] Parametric surfaces [Bézier patches]
* [M] Volumetric models: voxelized [Oct-tree, marching cubes]
* [M] Volumetric models: Implicit models [CSG]
* [M] Volumetric models: polyhedral meshes.
* [M] Modelli 3D: Construction [in brief]
** [M] Modelli 3D: Acquisition. [Range Maps.]
PART II: 3D rendering
* [R] Rendering [intro]
* [R] Ray-tracing [intro]
* [P] GLSL language
* [P] Ray-tracing in GLSL [ray casting of spheres]
** [P] Ray-tracing in GLSL [planes, intersections]
** [P] Ray-tracing in GLSL [shadows, reflections]
** [R] Rasterization [intro to the HW pipeline]
** [G] Spatial transforms [affine transf.]
** [G] Spatial transforms [Rotations and translations]
** [G] Spatial transforms [reference systems]
** [R] Transform Pipeline [Overview. Model matrix]
* [R] Transform Pipeline [View Matrix]
* [R] Transform Pipeline [Projection]
** [P] Rasterization in three.js [hello triangle]
* [R] Rasterization in three.js [meshes]
* [P] Rasterization in three.js [textures]
Legend:
* = 1 hour
[M] Modelling (1st part)
[R] Rendering (2nd part)
[G] Geometry (math)
[P] Programming (2nd part)
PART I: modelling 3D structures
** [M] Modelli 3D: intro and properties
** [M] Point Clouds [data structure and operations]
** [G] Vector and Point algebra [recap]
** [M] Meshes [attributes, normals, indexed structures]
* [M] Meshes [processing in brief: simplification & remeshing]
* [M] Meshes [processing in brief: smooth, denoise, clean]
* [M] Meshes [half-edges based structures]
** [M] Meshes: textures & UV mapping.
* [G] Superfici: normals, curvature, smoothness.
** [M] Subdivision surfaces
* [M] Height fields / Range Maps
** [M] Parametric curves [Bézier curves]
* [M] Parametric surfaces [Bézier patches]
* [M] Volumetric models: voxelized [Oct-tree, marching cubes]
* [M] Volumetric models: Implicit models [CSG]
* [M] Volumetric models: polyhedral meshes.
* [M] Modelli 3D: Construction [in brief]
** [M] Modelli 3D: Acquisition. [Range Maps.]
PART II: 3D rendering
* [R] Rendering [intro]
* [R] Ray-tracing [intro]
* [P] GLSL language
* [P] Ray-tracing in GLSL [ray casting of spheres]
** [P] Ray-tracing in GLSL [planes, intersections]
** [P] Ray-tracing in GLSL [shadows, reflections]
** [R] Rasterization [intro to the HW pipeline]
** [G] Spatial transforms [affine transf.]
** [G] Spatial transforms [Rotations and translations]
** [G] Spatial transforms [reference systems]
** [R] Transform Pipeline [Overview. Model matrix]
* [R] Transform Pipeline [View Matrix]
* [R] Transform Pipeline [Projection]
** [P] Rasterization in three.js [hello triangle]
* [R] Rasterization in three.js [meshes]
* [P] Rasterization in three.js [textures]
Legend:
* = 1 hour
[M] Modelling (1st part)
[R] Rendering (2nd part)
[G] Geometry (math)
[P] Programming (2nd part)
Prerequisites for admission
Linear algebra, functional analysis, algorithms, and programming are required.
Passing the Programming and Mathematics exams are therefore *necessary* for the Computer Graphics course.
Passing the Programming and Mathematics exams are therefore *necessary* for the Computer Graphics course.
Teaching methods
Most of the topics are exposed through lectures. In the first part (3D modeling) modeling and geometry processing tools are used to exemplify the covered topics. In the second part (3D rendering) the lessons are alternated with live coding sessions, in the classroom, which retrace the proposed topics. For this purpose, specialized libraries and languages are used.
Teaching Resources
The web-page of the course provides lecture slides and additional material (on Ariel)
The following textbook can help studying for the mathematical background:
Mathematics for 3D Game Programming and Computer Graphics (any edition) - Eric Lengyel - Course Technology
The following textbook can help studying for a subset of the topics in this course: "Introduction to Computer Graphics: A Practical Learning Approach" M Corsini, F Ganovelli, S Pattanaik, M Di Benedetto
The following textbook can help studying for the mathematical background:
Mathematics for 3D Game Programming and Computer Graphics (any edition) - Eric Lengyel - Course Technology
The following textbook can help studying for a subset of the topics in this course: "Introduction to Computer Graphics: A Practical Learning Approach" M Corsini, F Ganovelli, S Pattanaik, M Di Benedetto
Assessment methods and Criteria
The exam is carried out in written mode on the Moodle SEB platform, and consists of a sequence of small quizzes screening the knowledge and understanding of the entire course.
The evaluation is aimed at verifying the full understanding of the topics covered in the course, the ability to identify existing Computer Graphics solutions suitable to face a given technical challenge, the acquisition of the technical vocabulary of the field, and, in particular, the degree of familiarity achieved by the student in the use of the relative mathematical tools.
The evaluation is aimed at verifying the full understanding of the topics covered in the course, the ability to identify existing Computer Graphics solutions suitable to face a given technical challenge, the acquisition of the technical vocabulary of the field, and, in particular, the degree of familiarity achieved by the student in the use of the relative mathematical tools.
Educational website(s)
Professor(s)
Reception:
Tuesday 14:30-17:30 (or by appointment)
Department (Via Celoria 18) -- 4th floor.