v2.11.0 (6131)

Cours scientifiques - CSC_51441_EP : Real-Time 3D Programming

Domaine > Informatique.

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:

  1. Initialize and configure a modern OpenGL 4.6 context using C++ and CMake.

  2. Write and integrate vertex, fragment, and compute shaders in GLSL.

  3. Use Direct State Access (DSA) for efficient GPU resource management.

  4. Implement real-time rendering techniques including geometry, materials, lighting, and post-processing.

  5. Apply OpenGL debug and performance counter tools for profiling and optimization.

  6. Build and package a complete graphics application with CMake and vcpkg.

  7. Document and present a working demo showcasing visual quality and technical rigor.

27 heures en présentiel

effectifs minimal / maximal:

1/15

Diplô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 20

Littérale/grade réduit

Pour les étudiants du diplôme MScT-Extended Cinematography XCin

Le rattrapage est autorisé (Note de rattrapage conservée)
    L'UE est acquise si Note finale >= 10
    • 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 Technology

    Mé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

    Oui

    Veuillez patienter