Descriptif
Technical Director & Creative Technologist #1: Real-Time 3D Programming.
This course introduces students to modern real-time 3D programming using C++ and OpenGL 4.6, with a focus on programmable shaders (vertex, fragment, and compute). Students learn to design and implement a small rendering framework from scratch using CMake and vcpkg, while exploring advanced OpenGL features such as Direct State Access (DSA), debug and performance tools, and compute shaders for parallel GPU workloads.
By the end of the course, students will have built a functional, optimized 3D application that demonstrates a complete real-time rendering pipeline.
Objectifs pédagogiques
At the end of the course, students will be able to:
-
Initialize and configure a modern OpenGL 4.6 context using C++ and CMake.
-
Write and integrate vertex, fragment, and compute shaders in GLSL.
-
Use Direct State Access (DSA) for efficient GPU resource management.
-
Implement real-time rendering techniques including geometry, materials, lighting, and post-processing.
-
Apply OpenGL debug and performance counter tools for profiling and optimization.
-
Build and package a complete graphics application with CMake and vcpkg.
-
Document and present a working demo showcasing visual quality and technical rigor.
effectifs minimal / maximal:
1/15Diplôme(s) concerné(s)
Parcours de rattachement
Pour les étudiants du diplôme MScT-Extended Cinematography XCin
For students enrolled in MScT–XCin (Extended Cinematography), this course assumes:
- Solid knowledge of C++ programming fundamentals (functions, classes, pointers, STL).
- Basic understanding of 3D mathematics (vectors, matrices, transformations).
- Familiarity with real-time graphics concepts or creative coding (Processing, TouchDesigner, Unreal/Unity, etc.) is recommended.
- A laptop or workstation capable of running OpenGL 4.6 or higher, with up-to-date GPU drivers. Windows and Linux is OK, but macOS can only handle OpenGL 4.1.
Format des notes
Numérique sur 20Littérale/grade réduitPour les étudiants du diplôme MScT-Extended Cinematography XCin
Le rattrapage est autorisé (Note de rattrapage conservée)- Crédits ECTS acquis : 2 ECTS
La note obtenue rentre dans le calcul de votre GPA.
Programme détaillé
-------- IN PROGRESS, not finished! --------
1. Introduction & Environment Setup
-
Overview of the modern graphics pipeline (OpenGL 4.6 core).
-
CMake project structure and vcpkg dependency management.
-
Creating a window and context (GLFW, GLAD).
2. Rendering a First Triangle
-
Vertex buffers, vertex arrays, and index buffers.
-
Compiling and linking GLSL shaders (vertex & fragment).
-
Using DSA (
glCreate*
,glNamedBufferStorage
,glTextureStorage2D
).
3. Materials and Textures
-
Texture formats, samplers, mipmaps, and sRGB handling.
-
Introduction to uniform and storage buffer objects (UBO, SSBO).
-
Scene data management and draw calls.
4. Framebuffers and Post-Processing
-
Off-screen rendering with FBOs and render targets.
-
Post-processing pipeline (tone mapping, bloom, color grading).
-
Debug groups and RenderDoc integration.
5. Compute Shaders
-
Principles of parallel GPU computation.
-
Workgroups, memory barriers, and synchronization.
-
Implementing GPU-based effects (particles, image filters).
6. Performance and Debugging
-
Using OpenGL KHR_debug, labels, and callbacks.
-
Performance queries (timestamps, pipeline statistics).
-
Bottleneck analysis and optimization strategies.
7. Final Project & Presentation
-
Building a small real-time demo showcasing a custom pipeline.
-
Integration of compute features and debugging tools.
-
Documentation, packaging, and final presentation.
Mots clés
C++ • OpenGL 4.6 • GLSL • Real-Time Rendering • Shaders • Compute Shader • GPU Programming • Direct State Access (DSA) • Debug & Performance Tools • CMake • vcpkg • Graphics Engine • Creative TechnologyMéthodes pédagogiques
Project-based learning: each session introduces a new subsystem (buffers, shaders, compute, etc.) applied directly in code. Live coding demonstrations and guided exercises to illustrate real-world debugging and performance tuning. Peer code reviews to encourage clean architecture and maintainable C++ practices. Use of professional tools (RenderDoc, Nsight, CMake presets, Git) for reproducibility and industry alignment. Final project presentation combining technical documentation, real-time demo, and self-evaluation.Support pédagogique multimédia