Cours informatique programme OpenGL, tutoriel & guide de travaux pratiques en pdf.
Programme OpenGL
Réglages
– Ajoutez les répertoires suivants dans les options du compilateur :
Include files : (chemin d’accès)\NVIDIA CORPORATION\CG\INCLUDE
Library files : (chemin d’accès)\NVIDIA CORPORATION\CG\LIB
– Ajoutez dans les propriétés du projet les librairies cg.lib et cgGL.lib.
– Dans le fichier main.cpp, incluez les fichiers d’en-tête de Cg :
#include <Cg/cg.h>
#include <Cg/cgGL.h>
Déclarations
– Déclarez une variable globale de type CGcontext. Il s’agit d’un container, qui sera utilisé pour stocker tous les vertex shaders et fragment shaders de votre programme :
CGcontext cgContext;
– Déclarez deux variables globales de type CGprogram permettant de désigner le vertex shader et le fragment shader. Si vous utilisez plusieurs shaders dans un programme, il faudra déclarer autant de variables de type CGprogram.
CGprogram VertexProgram;
CGprogram FragmentProgram;
– Déclarez des variables globales de type CGparameter qui seront utilisées pour accéder aux paramètres du vertex shader.
CGparameter AmbientColor;
CGparameter DiffuseColor;
CGparameter LightDir;
CGparameter ModelViewMatrix;
– Déclarez des variables globales de type CGparameter qui seront utilisées pour accéder aux paramètres du fragment shader.
CGparameter BaseTexture;
– Déclarez deux variables globales de type CGprofile qui seront utilisées pour stocker le type de profil utilisé par les vertex shader et les fragment shader. Il existe plusieurs types de profils correspondant aux différentes versions qui sont apparues. On déterminera ce profil au cours de l’initialisation en demandant à Cg le profil le plus récent.
CGprofile VertexProfile;
CGprofile FragmentProfile;
Initialisation de Cg
Ecrivez une fonction initCG() que vous appellerez dans la fonction main() après la fonction initGL(). Dans cette fonction, on effectuera les traitements suivants :
Initialisation du contexte de Cg
– Faites appel à la méthode permettant d’initialiser le contexte Cg auquel se rattacheront les vertex shaders et fragment shaders utilisés dans votre programme :
cgContext = cgCreateContext();
Initialisation d’un vertex shader
– Déterminez le profil de vertex shader le plus récent :
VertexProfile = cgGLGetLatestProfile(CG_GL_VERTEX);
– Mais on peut aussi imposer une version de shader, comme par exemple :
VertexProfile = CG_PROFILE_ARBVP1;
– Créez le vertex shader au moyen de la fonction cgCreateProgramFromFile() en précisant le nom du fichier dans lequel il se trouve. On utilisera le fichier vertex_shader1.cg qui vous est fourni dans l’archive du projet.