Cours et TP OpenGL

Voici mon cours sur openGL 4, ainsi que les TPs.

I - Mode de compatibilité
  • Initiation à SDL 2 et construction d'une interface simple.
  • Chargement de fichiers 3D avec assimp 3 (dans les TPs).
  • Transformations géométriques et matrices (MODELVIEW et PROJECTION).
  • Modèles d'éclairement : normales, réflexions diffuse et spéulaire, sources lumineuses.
  • Plaquage de textures
II - Programmation par shaders et VBO
  • Initiation à GLSL.
  • Matrices avec GLM
  • Vertex Buffer Objects (VBO)
  • Frame Buffer Objects (FBO)

Téléchargez le polycopié du cours de 3D sous OpenGL en PDF

Voir le polycopié du cours de 3D sous OpenGL en html

(Si vous avez des difficultés avec les mathématiques et algorithmes pour la 3D mon livre de synthèse d'images 3D peut vous aider)

Sujets de TP :
(voir les instructions d'installation d'OpenGL 4, SDL 2 et autres librairies ci-dessous)

  • Sujet de TP 1 (SDL) : tpSDL.pdf Chargement de fichiers 3D (collada, obj, 3ds,...) avec assimp 3. Téléchargez les fichiers 3DS (et regardez les remerciements).
  • Sujet de TP 2 et 2bis (Transformations géométriques et matrices) : tpvisu.pdf : interface pour visualiser un objet sous différents angles avec OpenGL. Dessin d'une voiture. tprobot.pdf : visualisation d'un robot humanoïde articulé. Téléchargez les fichiers utiles
  • Sujets de TP 3 (Modèles d'éclairement) : tpeclairages.pdf
  • Sujet de TP 4 (Plaquage de textures et normal maps, shaders et VBO) : tp4_normalMaps.pdf : plaquage de textures. Voir le howto pour charger les fichiers JPEG, PNG, BMP, etc. dans des textures avec FreeImage.

Voici une vidéo qui illustre le processus de construction hiérarchique du robot :

Voici des vidéos qui illustrent une application des shaders OpenGL : un petit lancer de rayons temps réel qui montre les propriétés de réfration et réflexion en faisant varier l'indice de réfraction d'une sphère (déformée). (voir le chapitre "Éclairement avec shaders et VBO" du cours).


Bille de mercure

Bille de verre (se déformant !)

Bulle d'air sous l'eau

Goutte d'eau
Rendu temps réel récupéré dans un FBO
puis plaqué sur une surface de Bézier.

La tête d'Infinite Scan

Installation des librairies nécessaires sous Ubuntu 12.04 LTS

1) Installation d'OpenGL

Télécharger gl3.h sur 
http://www.opengl.org/registry/api/gl3.h
et le placer dans un répertoire /usr/include/GL3/

sudo apt-get install libgl1-mesa-dri libgl1-mesa-glx libgl1-mesa-dev  libglu1-mesa libglu1-mesa-dev mesa-common-dev freeglut3 freeglut3-dev libglew1.6 libglew1.6-dev libglm-dev

2) Installation de SDL 2

Télécharger SDL 2 (j'ai bien dit SDL 2) sur
http://www.libsdl.org/hg.php

unzip SDL-2.0.zip
cd SDL-2.0.xxx/
./configure
make
sudo make install

(Le script "configure" teste les dépendances de paquets. Il se peut
qu'il mette une erreur car il manque une librairie. Installez
alors le paquet correspondant à la librairie manquante.
Si tout se passe bien, le script "configure" génére le makefile)