Academic Year 2019-2020

INTERACTIVE 3D GRAPHICS

Teachers

Roberto Ranon
Unit Credits
6
Teaching Period
First Period
Course Type
Affine/Integrativa
Prerequisites. Linear algebra (vectors, matrices, and related operations). Programming in any imperative / object-oriented language.
Teaching Methods. The course includes

– frontal lectures about theoretical concepts

– analysis of practical examples and exercises, that are given through the github platform

– practical projects, to be carried out also in groups

Learning materials, slides and video feeds of the lectures are available on the University e-learning platform a few hours after each lecture.

Verification of Learning. Student’s comprehension is verified through two mid-term tests, which include both questions and exercises, and two practical projects, which can also be carried out in groups, the second of which simulates a realistic application scenario. For the regular exam sessions, a written test with questions and exercises is administered.​
More Information. The teaching material and the slides of the course are available on the E-learning platform of the University of Udine. Such materials are reserved for students enrolled in the course.
Objectives
The course introduces the main concepts, algorithms and technologies in the field of interactive 3D graphics, with practical examples in WebGL (through the three.js library) and Unity. More specifically, starting from the interactive 3D rendering pipeline, we examine in detail its functioning: geometry representation, transformations, rasterization, and fragments merging into the final image. Then, we focus on how to simulate the effect of lighting on materials, presenting the equations for Physically-Based Rendering (and their implementation through shading languages) that are nowadays popular in videogames, movie production, and virtual reality. Finally, we also cover topics that are strictly related to rendering, such as animation techniques and spatial data structures.

Main topics:

The interactive 3D rendering cycle. The real-time rendering pipeline.

Geometry representation.

Affine transformations. Perspective and orthographic projections.

Rasterization and interpolation. Aliasing and anti-aliasing methods.

Programmable shaders. The glsl language.

Physically-Based Shading. General rendering equation. Lambertian and micro-facet BRDF.

Shading techniques: material mapping, bump mapping, reflection mapping, refraction mapping, environment mapping, shadow mapping. 

Image-based rendering. Post-processing effects.

Animation techniques: keyframing, skeleton-based, physics-based. Particle systems. 

1.1. Knowledge and understanding

During the course, the student learns how to understand the functioning of an application based on interactive 3D graphics (videogames, virtual reality applications, 3D visualizations). Moreover, he/she knows how to evaluate and improve the rendering performances.

1.2 Applying knowledge and understanding

Thanks to several examples and exercises, and to the projects that are due for the exam, the student learns how to design and implement an application based on interactive 3D graphics, Web-based or not, choosing the algorithms and technologies that are more suited to the case at hand.

SOFT SKILLS

2.1 Making judgements

The student learns how to critically evaluate the technologies, algorithms and programming techniques that can determine the correct and effective implementation of an application based on interactive 3D graphics.

2.2 Communication .

The student learns how to describe, in technically suitable terms, an application or a technique in the field of interactive 3d graphics.

2.3 Learning skills

The student learns how to become autonomous in expanding his/her knowledge beyond the concepts and examples that are given in class, by acquiring the basic knowledge which is necessary to access the technical and scientific literature about advanced topics.

Contents
The course introduces the main concepts, algorithms and technologies in the field of interactive 3D graphics, with practical examples in WebGL (through the three.js library). More specifically, starting from the interactive 3D rendering pipeline, we examine in detail its functioning: geometry representation, transformations, rasterization, and fragments merging into the final image. Then, we focus on how to simulate the effect of lighting on materials, presenting the equations for Physically-Based Rendering (and their implementation through shading languages) that are nowadays popular in videogames, movie production, and virtual reality. Finally, we also cover topics that are strictly related to rendering, such as animation techniques and spatial data structures.

Main topics:

The interactive 3D rendering cycle. The real-time rendering pipeline.

Geometry representation.

Affine transformations. Perspective and orthographic projections.

Rasterization and interpolation. Aliasing and anti-aliasing methods.

Programmable shaders. The glsl language.

Physically-Based Shading. General rendering equation. Lambertian and micro-facet BRDF.

Shading techniques: material mapping, bump mapping, reflection mapping, refraction mapping, environment mapping, shadow mapping. 

Image-based rendering. Post-processing effects.

Animation techniques: keyframing, skeleton-based, physics-based. Particle systems. 

Ray Tracing.

Texts
Real-Time Rendering, (2nd, 3rd or 4th edition), T. Akenine-Möller, E. Haines, and N. Hoffman. 3D Math Primer for Graphics and Game Development, F. Dunn e I. Parberry. Mathematics for 3D Game Programming and Computer Graphics, E. Lengyel.