Programmation openGL
Accès direct à une rubrique
[revenir
   à     la  page   d'acceuil]
                                
Documents
    openGL SDK
    openGL 
             Programming Guide (The Red Book)
    
    openGL Specification / openGL Shading Language Specification (The Blue Book)
    openGL Shading Language Book (The Orange Book)
à ne pas manquer :
    GLSL quick reference guide
    openGL man pages
    re-programmer les fonctionnalités du pipeline fixe : sources GLSL (orange book)
    générer automatiquement les shaders GLSL correspondant aux fonctionnalités du pipeline fixe
    Mesa3D, 
  The   Mesa   3D   Graphics    Library, une librairie compatible openGL
GLUT (à réserver aux TP !!)
    glut,   
       the openGL Utility Toolkit, simplifie un certain nombre d'opérations
             (ouverture d'une fenêtre, d'un contexte graphique, etc.)
                               
    documentation
        glut
                
SDL
    libSDL, une librairie portable (opengl, threads, timer, plugins, chargement d'images, reseau, audio, etc.)
    libSDL Programming Guide
Extensions openGL
    glew, 
 the   openGL    Extension      Wrangler,  simplifie (élimine les problèmes,
      serait plus   juste)   l'utilisation  des extensions openGL.
                           
FAQ
    OpenGL FAQ and
Troubleshooting       Guide 
                                Avoiding
      16 Common OpenGL Pitfalls
            
Outils
  - analyse de performances :
 
  - debugger :
- shadercc
: petit utilitaire simpliste permettant de compiler les shaders depuis
un éditeur de texte (SciTE) et de naviguer dans les messages
d'erreurs.
 
Techniques : Modélisation
  - représentation des objets par maillages
    - simplification du maillage en fonction de la distance
 
- imposteurs : représentation basée image d'un maillage
- niveaux de détails continus :
- modélisation procédurale : 
 
Techniques : Affichage
  - affichage efficace d'un maillage :
- utilisation des vertex buffer objects
- pseudo-instancing
- triangles strips
  
    - ordre global approximatif sur les triangles du maillage
 
- élimination des parties cachées
- frustum culling
- occlusion culling
- réduire la quantité de géométrie à afficher
    - voir modélisation (simplification de maillages, imposteurs, niveaux de détails continus)
 
 
- affichage efficace d'une scène complète
- réduire les changement d'états (maillage et attributs, textures, shaders)
- construction d'atlas de textures pour limiter le nombre de changements d'états
 nvidia Texture Tools + Atlas comparison Viewer
 
- réduire le nombre d'appels openGL 
 cf. vertex buffer objects et pseudo-instancing
- voir cours M2PROIMA et GAMAGORA
 
Techniques : divers
  - ombres et pénombres :
    - utilisation des frame buffer objects, pour stocker directement la shadow map dans une texture
 
    
    - shadow mapping "standard"
 
- filtrage des shadow maps :
 
- ombres douces :
 
- paramétrisation des shadow maps :
 
- ombres volumiques : cf. TD + correction
 
 
- tutoriaux T. Forsyth :
 
- rendu en 2 passes : 1 passe géométrie seule + 1 passe calculs
 cf. généralisation : rendu différé
 cf. ATI Xenos (GPU Xbox 360)
 cf. DOOM III (id software)
 cf. Source Engine (Valve : Half-Life 2, ...)
 
 
- rendu différé :
  - ambient occlusion / indirect :
 
    - Screen Space Ambient Occlusion 
 
- animation :
- motion capture 
 
- construction de séquences d'animations 
 
à lire dans l'ordre, pour se faire une idée :
SDK :
pour en savoir plus :
  
    - modélisation des collisions (élastiques, rigides, etc.)
- impulse based dynamics :
- position based dynamics :
- physics based animation :
  - phénomènes naturels :
- relief
- végétation : SpeedTree Demo
 
- pluie : ATI ToyShop Demo
 
- océan
- ciel
- peau 
 
- cheveux ati sdk
 
- demos :
 
- rendu haute dynamique (HDR)
- motion blur
- profondeur de champ
  - harmoniques sphériques et pré-calculs
    - P.P. Sloan
      - 
        "Fast, Arbitrary BRDF Shading for Low-Frequency Lighting Using Spherical 
		Harmonics",
        
 Jan Kautz, Peter-Pike Sloan and John Snyder,
- 
        
		"Precomputed Radiance Transfer for Real-Time Rendering in Dynamic, Low-Frequency 
		Lighting Environments",
        
 Peter-Pike Sloan, Jan Kautz, and John Snyder,
- 
        
    "Bi-Scale Radiance Transfer",
        
 Peter-Pike Sloan, Xinguo Liu, Heung-Yeung Shum, and John Snyder,
- 
        
		"All-Frequency Precomputed Radiance Transfer for Glossy Objects",
        
 Xinguo Liu, Peter-Pike Sloan, Heung-Yeung Shum, and John Snyder,
- 
        
		"Local, Deformable Precomputed Radiance Transfer",
        
 Peter-Pike Sloan, Ben Luna, and John Snyder,
- 
        
		"Normal Mapping for Precomputed Radiance Transfer",
        
 Peter-Pike Sloan,
- 
 
		"Real-time Soft Shadows in Dynamic Scenes using Spherical Harmonic Exponentiation" 
 Zhong Ren, Rui Wang, John Snyder, Kun Zhou, Xinguo Liu, Bo Sun, 
Peter-Pike Sloan, Hujun Bao, Qunsheng Peng, and Baining Guo,
-  "Precomputed Shadow Fields for Dynamic Scenes"
 Kun Zhou, Yaohua Hu, Stephen Lin, Baining Guo, Heung-Yeung Shum.
- "Spherical Harmonic Scaling"
 Jiaping Wang, Kun Xu, Kun Zhou, Stephen Lin, Shimin Hu, Baining Guo
 
 
- quelques explications plus digestes :