42018 - Real Time Advanced Visualization (VATR)

  • Type: Elective
  • Semester: S3
  • ECTS: 5
  • Teaching Points: 12
  • Offer: Annual
  • Responsible Unit: CS
  • Responsible: Àlvar Vinacua
  • Language: English
  • Requirements: Basic knowledge on Mold and Vectors Algebra and Programming with OpenGL or DirectX. These subjects can be taken at the first cycle of any degree in Informatics. In particular, at the UdG, the former is taught in Mathematics courses, while the latter is taught in the subject Introduction to Graphics.

This course will examine the architecture and capabilities of modern GPUs (Graphics Processing Unit). The GPU has grown in power over recent years, to the point where many computations can be performed faster on the GPU than on a traditional CPU. GPUs have also become programmable; allowing them to be used for a diverse set of applications far removed from traditional graphics settings.
Topics covered will include architectural aspects of modern GPUs, with a special focus on their streaming parallel nature, writing programs on the GPU using high level languages like Cg, GLSH o HLSL, and using the GPU for graphics and general purpose applications.

We will cover advanced photorrealistic techniques, like shadows, refractions, reflections, global illumination and high dynamic range imaging (HDRI). Also, alternative architectures will be covered, especially those arising from the videogame industry, from the first videogame consoles up to the most advances architectures.

Finally, other photorrealistic techniques will be introduced, like vegetation rendering, complex models or light sources, etc. vegetation rendering, complex models or light sources, etc.

1. Introduction: Standard Architecture and the graphic pipeline. The rasterization process.
2. 2D and 3D Hardware. Fixed Pipeline:
  • Structure.
  • Output primitives. 2D and 3D cameras. Hierarchies
  • 2D i 3D visualization process
    • Transformations (world-observer, perspective, world-display).
    • Culling.
  • Visibility
  • Concept
  • Z-Buffer
  • Ray Casting
  • Illumination
  • Concept
  • Local Models
  • Global Models
  • Shadowing: Wireframe, Flat, Gouraud and Phong
  • The different available buffers: Z, Stencil, Item, Accumulation
  • Data access at the main buffers
  • Algorithms that use the color buffers
  • Algorithms that use the depth buffers
  • Transparencies
  • APIs: OpenGL and Direct3D
3. Advanced techniques:
  • Shadows: on the floor, with a depth map and shadow volumes
  • Reflections (environment mapping and recursive reflections)
  • Realistic refractions
  • Introduction to real time global illumination
  • Floating point textures. High Dynamic Range Textures
4. Advanced Hardware: The programmable pipeline
  • Vertex and pixel shaders - OpenGL Shading Language/HLSL, CG
  • Architectures i Profiles. Capabilities
  • Advanced shader development
  • Advanced illumination effects with GPUs
  • Deformations and simulations at the GPUs
  • Using the GPUs as generic processors (GPGPU)
5. Other architectures alternatives: PSX, N64, PS2, NGC, XBOX, PS3, XBOX360, ...
6. Other advanced real time visualization techniques
  • BSP: Portals and Sectors
  • naturals phenomena: vegetation, clouds, water
  • ...


The 5 ECTS credits of this course will be divided in different activities:
  • lectures (CP),
  • reading and studying of additional materials (articles and book chapters) in order to acquire complementary knowledge (Comp),
  • solving of practical projects (TP),
  • practical exercises in lab (Lab).

Students will be presented with the main concepts of the course in lectures, and will also briefly revise additional topics which will be recommended for reading.
Finally, acquired knowledge will be applied to different aspects of visualization using advanced realistic rendering.

The final mark will be an average of the marks for the different activities done along the course.
The topics of the practical projects will be developed around the contents of modules 2, 3, 4, and 6. Students must reach an aim in each module, which will consist of implementing one of the previously explained algorithms using the studied techniques and, in the final modules, the GPUs.
Exercises must be handed in within an established period of time, and an interview will take place in order to evaluate the level of assimilation of the module’s contents.


OpenGL(R) Programming Guide : The Official Guide to Learning OpenGL(R), Version
2 ISBN: 0321335732

OpenGL(R) Shading Language (2nd Edition) ISBN: 0321334892

The Cg Tutorial: The Definitive Guide to Programmable Real-Time Graphics
(Randima Fernando and Mark Kilgard)
Real-Time Rendering (2nd Edition), by Tomas Moller, Eric Haines, Tomas Akenine-
Moller ISBN: 1568811829

GPU Gems: Programming Techniques, Tips, and Tricks for Real-Time Graphics
(Randima Fernando)

Siggraph Tutorials 2004 (http://www.gpgpu.org/s2004/)

Visualization Tutorials 2004 (http://www.gpgpu.org/vis2004)

Appart from the recommended bibliography, students can use the following complementary materials:
  • Siggraph Proceedings.
  • Specialized magazines and present-day articles.