Le développement de mon API C++ basée sur OpenGL suis son cours. Lors du dernier billet de la rubrique "Développement", j'avais présenté les différentes fonctionnalités possibles, et m'étais arrêté sur les vecteurs normaux permettant de diffuser correctement la lumière sur toute la géométrie des objets. Le matériau utilisé pour afficher les objets 3D, dans mon API, était jusqu'ici toujours le même: un gris moyen.
J'ai amélioré l'API afin de gérer les matériaux propres aux objets de type Wavefront. Ces matériaux sont stockés dans des fichiers d'extension .mtl (pour Material Library) et sont composés de plusieurs informations: la couleur ambiante du matériau, sa couleur diffuse, sa couleur spéculaire (renvoyée par la lumière) et l'intensité de la réflection de la lumière (directement liée à la couleur spéculaire). Oh, et la valeur du canal de transparence (alpha) est également lue, mais ce dernier n'est pas encore utilisé (l'Alpha Blending, c'est pour plus tard).
J'ai amélioré l'API afin de gérer les matériaux propres aux objets de type Wavefront. Ces matériaux sont stockés dans des fichiers d'extension .mtl (pour Material Library) et sont composés de plusieurs informations: la couleur ambiante du matériau, sa couleur diffuse, sa couleur spéculaire (renvoyée par la lumière) et l'intensité de la réflection de la lumière (directement liée à la couleur spéculaire). Oh, et la valeur du canal de transparence (alpha) est également lue, mais ce dernier n'est pas encore utilisé (l'Alpha Blending, c'est pour plus tard).
Concrètement, qu'est-ce qui change depuis la dernière version? Et bien, lorsqu'un objet est modélisé à l'aide de Blender, on peut naturellement lui attribuer une quelconque couleur ambiante, spéculaire et diffuse; lorsque l'objet sera exporté en Wavefront et chargé grâce à mon API, ces paramètres définis à l'aide de Blender seront restaurés. Dès lors, il m'est possible de développer une application comportant divers objets 3D où la lumière est prise en compte pour le rendu (shading) - ce qui était déjà le cas auparavant -, mais où les variations de couleurs définies le sont également.
Vous devez peut être vous en douter: la prochaine étape est la prise en charge des textures.
Wait & See !
Vous devez peut être vous en douter: la prochaine étape est la prise en charge des textures.
Wait & See !