Littérature

Ce post est susceptible d’être mis à jour régulièrement.

Illumination globale

Non temps réel :

 

Temps réel :

Autres

Base code

Nous avons créé un svn public à l’adresse : https://xp-dev.com/svn/PBGI-repo

Il s’y trouvera tout notre travail en terme de code.

Vue générale du svn :

  • /src : contient tout le code (shaders exclus), ainsi qu’un fichier de projet .pro à utiliser avec qmake.
  • /release : est l’environnement d’exécution du programme (l’exécutable devra être lancé à partir de cet endroit). Il contient les shaders, et les informations des scènes de test (géométries et textures).
  • /dependencies : contient les bibliothèques de dépendances à savoir GLFW, GLEW, TinyObjLoaderSTBImage et GLM. Les deux premières sont compilées pour un environnement win32, les trois dernières sont à la mode du “header only” et sont donc totalement multiplateformes. Il s’y ajoutera sûrement NanoVG par la suite.

 Le base code actuel :

  • Contexte OpenGL 4.3
  • Chargement et affichage d’objet 3D (au format Wavefront)
  • Chargement de vertex, geometry et fragment shader
  • Système de caméra
  • Utilisation de FBO
  • Chargement de texture (toute type de format)
  • Gestion du temps

To do (il faut avant tout, avoir un pipeline d’illumination directe opérationnel) :

  • Amélioration des FBOS (MRT et 32 bits)
  • PCF Shadow mapping
  • Etre Gamma Correct 
  • Deferred shading
  • Amélioration du loader d’OBJ (supporte un seul material pour le moment)

 

Hello world

Journal de bord de deux étudiants en Master d’Imagerie Numérique à Marseille.

Projet de fin d’étude : Illumination globale temps réel basée sur des surfels accélérée par GPU

Description du sujet : Pour obtenir le rendu d’une scène 3D le plus réaliste possible au niveau de son éclairage, il est indispensable d’utiliser un algorithme d’illumination globale qui prenne en compte non seulement la lumière qui a pris un chemin partant directement d’une source lumineuse (illumination directe), mais également la lumière ayant subi la réflexion d’autres surfaces dans la scène à 3 dimensions (illumination indirecte), comme cela se passe dans la réalité.

Les techniques d’illumination globale les plus précises nécessitent des temps de calculs très élevés, de l’ordre de plusieurs minutes ou plusieurs heures en fonction de la complexité de la scène, telles que la radiosité, le path tracing, le photon mapping, etc. Des techniques temps réel existent, mais elles sont plus approximatives. Certaines utilisent du précalcul (lightmaps) qui les limitent à des scènes statiques où les objets sont rigides et ne bougent pas les uns par rapport aux autres. D’autres techniques simplifient l’étude des échanges lumineux mais permettent de traiter le cas de scènes dynamiques (Ambient occlusion, voxel cone tracing). Le but de ce projet est de mettre au point une technique temps réel d’illumination globale pour une scène dynamique, en calculant les échanges lumineux entre des surfels (« surface elements »). Ces calculs seront accélérés en les effectuant avec le GPU au moyen de shaders.

Design a site like this with WordPress.com
Get started