Comment apprendre les bases de l’infographie, du traitement d’image et de la programmation OpenGL ? Y a-t-il des livres recommandés


Si vous souhaitez apprendre les bases de l'infographie, vous devrez commencer par apprendre les bases de l'algèbre linéaire. Des concepts tels que les vecteurs, les matrices et les transformations constituent les bases de l'infographie. Par exemple, lorsque vous appuyez sur un bouton de votre contrôleur pour faire tourner un personnage de jeu sur un écran, vous appliquez une transformation de rotation au personnage de jeu.

Après avoir bien maîtrisé l'algèbre linéaire, vous devrez apprendre une API qui vous donne accès à la communication avec le GPU. Une API très populaire est OpenGL. OpenGL n'est pas un langage de programmation, c'est une API. Une API est un intermédiaire logiciel qui permet à différents programmes d'interagir les uns avec les autres. Dans le cas d'OpenGL, elle permet l'interaction entre le CPU et le GPU.


OpenGL peut être considéré comme un côté client et un côté serveur. Le côté client s'occupe du chargement des données sur les tampons OpenGL, puis de leur transfert vers le GPU. Essayez de vous familiariser avec les tampons OpenGL, les objets de type Vertex Buffer, les objets de type Vertex Array et les objets de type Texture. Apprenez à charger des données dans ces tampons et à connaître le processus de rendu OpenGL.

Le côté serveur est constitué de shaders. Un shader est un petit programme développé par vos soins qui vit dans le GPU. Un shader est écrit dans un langage graphique spécial appelé OpenGL Shading Language (GLSL). Un shader prend la place de deux étapes importantes dans le pipeline OpenGL : "Per-Vertex Processing" et "Per-Fragment Processing" stage.

Donc les bases pour apprendre l'infographie sont:

  • Algèbre linéaire
  • Comment charger des données dans les tampons OpenGL
  • Shaders

L'infographie ne peut'tre apprise du jour au lendemain. Il faut du temps. Il y a beaucoup à apprendre et la seule façon de le faire est de le pratiquer chaque jour. Have fun.

Update 11/27/15
In case you are interested in learning more, here is a list of OpenGL articles and projects which I have written on my blog. I hope you find them useful. Enjoy

Beginner's Level

  1. What is OpenGL
  2. What is the purpose of the OpenGL API
  3. Understanding OpenGL Objects
  4. Visualizing OpenGL Objects
  5. Loading data into OpenGL
  6. OpenGL Rendering Pipeline
  7. Starting the Rendering Process in OpenGL
  8. Rendering efficiently with OpenGL
  9. Vertex Attribute Purpose
  10. Brief talk about OpenGL Textures
  11. What is a Vertex Shader
  12. What is a Fragment Shader

Intermediate Level

  1. What are binding points in OpenGL
  2. What are Vertex Array Binding points
  3. Compiling, Attaching and Linking Shaders
  4. How does the Vertex Shader receives data
  5. How to pass data from shader to shader
  6. what is the purpose of a Vertex Attribute in OpenGL
  7. What are Tessellation Shaders
  8. What are Geometry Shaders

OpenGL Projects

  1. Rendering a character using OpenGL ES in iOS
  2. Applying texture to a character using OpenGL ES in iOS
  3. How to use OpenGL ES Shaders
  4. How to rotate a character using OpenGL ES in iOS
  5. How to apply lighting to a character using OpenGL ES in iOS
  6. How to apply a Skybox (Cube Map) using OpenGL ES in iOS
  7. How to add a Normal Map using OpenGL ES in iOS