Tutoriels sur la gestion dynamique de l'éclairage avec OpenGL

Michel de VERDELHAN

Voici une série de tutoriels que j'ai réalisés sur la gestion de l'éclairage dynamique avec OpenGL. Le but de cette série est de montrer pour chaque tutoriel une nouvelle méthode pour gérer des lumières dynamiques sans avoir à se préoccuper des contraintes liées au nombre maximum de lumières que peut gérer une carte 3D. En effet, les cartes 3D ne peuvent gérer qu'un nombre limité de lumières à la fois (on peut connaitre ce nombre en récupérant l'attribut GL_MAX_LIGHTS d'OpenGL).

- Titre : Tutoriels sur la gestion dynamique de l'éclairage avec OpenGL

- Auteur : Michel de VERDELHAN

- Parution : 6 septembre 2006

- Mise à jour : 26 novembre 2019

- Licence : Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2006 Michel de VERDELHAN. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- Gestion de l'éclairage dynamique

- Remerciements

Gestion de l'éclairage dynamique

Tutoriel

Description

Partie 1 : l'éclairage par vertex

Tutoriel sur la mise en place d'un système simple de gestion de l'éclairage dynamique : l'éclairage par vertex.
Ce tutoriel détaille les différents modes de gestion de l'éclairage dynamique et montre comment mettre en œuvre l'éclairage par vertex.

Partie 2 : Le light mapping dynamique simple

Tutoriel sur la mise en place d'un système de light mapping dynamique simple. Ce tutoriel tourne sur toutes cartes graphiques supportant le multitexturing. Il explique le fonctionnement du light mapping standard et explique comment lui ajouter un système pour gérer des lumières dynamiques.

Partie 3 : Le light mapping à base de texture 3D

Ce tutoriel reprend le précédent, mais utilise une texture 3D comme light map dynamique au lieu d'utiliser deux textures 2D. Ce tutoriel est relativement simple, mais c'est une étape obligatoire avant de commencer à étudier l'éclairage par pixel.

Partie 4 : l'éclairage par pixel simple

Ce tutoriel présente l'éclairage par pixel et introduit toutes les notions nécessaires à sa compréhension. C'est sans doute le tutoriel le plus compliqué à appréhender. J'y explique notamment le principe de l'espace local des vertex et l'utilisation de normal maps.

Partie 5 : l'éclairage par pixel complet

Ce tutoriel approfondit la gestion de l'éclairage par pixel. J'y traite de l'utilisation d'une cube map de normalisation pour résoudre les problèmes d'interpolation des vecteurs vus dans le tutoriel 4, et je présente aussi une méthode basée sur un rendu multipasse pour gérer les lumières colorées.

Partie 6 : éclairage par pixel complexe à base de shaders.

Ce dernier tutoriel montre comment mettre en place un éclairage complexe en utilisant un fragment program ARB (l'équivalent OpenGL des pixel shaders en assembleur de DirectX). Dans ce tutoriel, nos lumières supportent les reflets spéculaires, mais aussi le parallax mapping.

Remerciements

Je tiens à remercier tous ceux qui m'ont permis de réaliser ces articles, notamment l'équipe 2D/3D/Jeux de developpez.com, et plus particulièrement buchs, loka, fearyourself et miles pour leurs relectures.