Informatique Informatique
Référence formation : 4-LC-OGL - Durée : 5 jours

Cliquez sur l'image ci-contre ou sur le lien ci-dessous
pour télécharger notre programme de formation professionnelle au format PDF
(nécessite © Acrobat Reader)

Objectifs

  • Appréhender l'API et les concepts importants d'OpenGL, ainsi que les particularités de la 3D temps réel, autant avec le pipeline fixe qu'avec les shaders
  • Découvrir l'étendu des fonctionnalités d'OpenGL

Pré-requis

  • Compétences en langage C, quelques notions concernant le monde de la 3D.
  • Programmeurs d'application et systèmes

Plan de cours

1. Présentation

  • versions et historique (1.x à 4.x, ES1, ES2)
  • place d'OpenGL sur le marché actuel de la 3D
  • principes de fonctionnement d'une carte 3D
  • pipeline fixe et pipeline programmable
  • extensions OpenGL
  • bindings et langages

2. Initialisation et contexte

  • création de l'espace de rendu
  • les API concernées : GLX, WGL, CGL, EGL, ...
  • les abstractions possibles : GLUT, SDL, ...
  • gestion des extensions (GLEW, GLEE, ...)
  • le cas de l'API GLU

3. Principes de base

  • définition d'une scène dans un espace en 3D
  • états de la machine OpenGL
  • espace de visualisation : Frustum

4. Formes, volumes et géométries

  • points, lignes et polygones
  • concepts : les surfaces évaluées (Bézizer) et les NURBS de GLU
  • géométries arbitraires
  • performances et triangles
  • mode immédiat, listes d'affichages, Vertex Array, VertexBuffers

5. Matrices

  • Rôle des matrices de la machine OpenG
  • Matrice de visualisation
  • Matrice de transformation
  • Rotations, translations

6. Eclairage

  • Rôle et fonctionnement de l'éclairage
  • Simplifications du modèle d'éclairage
  • Mise en place et définitions
  • Déplacements des sources lumineuses
  • Gestion des couleurs
  • Gestion des matériaux
  • Les normales (déduction et lissage)
  • Les spots

7. Le blending et les transparences

  • intérêts et problématique du blending
  • problématiques des superpositions blendées

8. Application de textures

  • Principes du texturage
  • Chargement de textures
  • Mise en place de coordonnées de texture
  • Filtrages (linéraires, bilinéaires)
  • MipMapping
  • Matrice de texturage
  • Extenstions (multitexturing, textures 3D, ...)
  • Précisions sur le blending de textures

9. Tampons

  • Tampon de profondeur (Z-buffer)
  • Tampon d'accumulation
  • Tampon "pochoir" (stencil buffer)
  • Framebuffer Objects (FBO)
  • Utilisations avancées des tampons (réflections, blur, stencil shadows, cell shading, ...)

10. Shaders

  • présentation
  • Vertex Shaders et Fragment Shaders
  • Geometry Shaders (OpenGL 3.2) et tessellation (4.0)
  • compilation et édition des liens des shaders
  • le langage GLSL
  • types, passages d'arguments, ...
  • branchements et itérations
  • mise en oeuvre (toon shaders, normal mapping, post-processing, ...)

11. Réalisme d'une scène

  • ombres
  • gestion du brouillard
  • antialiasing
  • skyboxes, dômes, ...
  • particules et impositors
  • gestion temporelle
  • textures animées
  • physique d'un environnement 3D
  • textures animées, render-to-texture (RTT)
  • gestion des entrées utilisateur
  • workflow de création et gestion des assets
  • performance et mémoire

12. Présentation du GPGPU

  • concepts de calcul embarqué dans le GPU
  • intérêts et contraintes
  • Shaders et FBO
  • OpenCL (ouvert)
  • CUDA (NVidia)

Retour haut de page