Début du travail - Interfaçage d'un shader Cg avec OpenGL


Voilà maintenant un moment que je continue à travailler en tache de fond sur la scène 3D présentée lors d'un TP OpenGL. Là par contre, on passe à un niveau supérieur car on va utiliser les unités de shaders. Pour l'instant, je ne m'attarde pas vraiment sur le sujet car il s'agit uniquement d'illustrer le travail en cours.

C'est mieux non ?


< param name="movie" value="http://gregory.corgie.free.fr/Ressources/Flash/flash_flv_player/flvplayer.swf?file=../../Videos/OpenGl/scene_2_0&autoStart=false" /> < param name="wmode" value="transparent" />


On avance encore un peu : Illumination au shader


La scène s'étoffe un petit peu avec l'ajout d'une illumination sur l'eau et sur le landscape.

Plus précisement :

  • Pour l'eau, éclairage par une source de lumière ponctuelle. Lumière diffuse + Lumière spéculaire.
  • Pour le landscape, éclairage par une source de lumière directionnelle. Lumière diffuse seulement.

D'autre part :

  • Ajout d'un blending sur les textures du landscape afin de gommer les limites entre les différentes altitudes. Bien que moins nettes et plus estompées, elles restent trop voyantes et il faudrait peut-être ajouter un peu d'aléatoire dedans.

La source de lumière est représentée par la petit cube bleu dans le ciel. Il reste quelques incohérences dans la scène, mais je n'arrive pas à trouver d'explications. Une fois trouvées, j'essaierai de faire une petite série de tuto pour expliquer les principes et l'interfaçage openGL et Cg.


< param name="movie" value="http://gregory.corgie.free.fr/Ressources/Flash/flash_flv_player/flvplayer.swf?file=../../Videos/OpenGl/scene_2_1&autoStart=false" /> < param name="wmode" value="transparent" />


S'amuser avec notre source de lumière dynamique


Maintenant que l'on a une source de lumière dynamique, on peut commencer à s'amuser. En ajoutant la couleur de la source de lumière au pixel shader, on peut simuler des cycles jour/nuit.

Les cycles jours/nuits

  • Implémentation de la trajectoire apparente du soleil (Est->Sud->Ouest).
  • Les différentes étapes de la journée sont fixées avec une heure, une couleur et la possibilité d'interpoler la couleur entre deux étapes successives
  • Fade-In et Fade-Out pour masquer la "téléportation" de la source de lumière

Landscape

  • Ajout d'un peu d'aléatoire lors de la génération de la texture du terrain. Le résultat est très satisfaisant, les lignes d'altitudes ne sont plus visibles et le terrain semble plus crédible.

Tout ça commence à prendre un peu forme... :-)


< param name="movie" value="http://gregory.corgie.free.fr/Ressources/Flash/flash_flv_player/flvplayer.swf?file=../../Videos/OpenGl/scene_2_2&autoStart=false" /> < param name="wmode" value="transparent" />