IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenGL Discussion :

gestion de la lumière


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 228
    Par défaut gestion de la lumière
    Bonjour,
    A votre avis, comment faire pour gérer la lumière ? (un objet avec un angle, une couleur, une direction et une position ; autre ??) Mais aussi comment m'en servir ?

    Evidemment, une gestion de la lumière simple me suffira. Je pose cette question car je ne vois pas comment partir parce qu'avant cela, j'ai fait une camera (pas de prob) mais là ...

    Merci

    PS : je developpe pour OpenGL ES alors il y a peut être des fonctionnalités non disponibles ou différentes.

  2. #2
    Membre émérite
    Avatar de Ange_blond
    Homme Profil pro
    Ingénieur développement en 3D temps réel
    Inscrit en
    Mars 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement en 3D temps réel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 902
    Par défaut
    regarde du coté de GL_LIGHT...

    et a mon avis pour une telle question tu n'as pas regardé les FAQ ou fait des recherches par toi même...

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 228
    Par défaut
    Citation Envoyé par Ange_blond Voir le message
    regarde du coté de GL_LIGHT...

    et a mon avis pour une telle question tu n'as pas regardé les FAQ ou fait des recherches par toi même...
    Merci mais je sais me servir de la lumière un minimum.

    Ce que je veux, c'est avoir un objet qui va gerer la lumière.
    En fait, je veux tout séparer (objets graphiques, camera, lumiere ...).

    Merci

  4. #4
    Membre émérite
    Avatar de Ange_blond
    Homme Profil pro
    Ingénieur développement en 3D temps réel
    Inscrit en
    Mars 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement en 3D temps réel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 902
    Par défaut
    ben tu créé une classe , dans laquelle en fonction des parametres que tu as donné, ça créé la ou les lumieres...

    ensuite tu appelle ta classe dans la boucle OpenGl...

    Ou tout simplement une fonction....

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 228
    Par défaut
    Ok

    Ce serait un truc simple du genre une classe avec comme attributs les propriétés de la lumière (tableaux pour GL_AMBIENT, GL_DIFFUSE ...). Qd j'initialise ma scene (en meme tps que ma camera, que le GL_DEPTH_TEST...), je crée cet objet que j'initialise correctement.

    Et c'est tout ? (rien a faire dans ma fonction display ?)

    merci

  6. #6
    Membre chevronné
    Inscrit en
    Février 2008
    Messages
    413
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Février 2008
    Messages : 413
    Par défaut
    Par exemple, dans mon programme j'utilise une fonction InitLight qui est appelée une seule fois lors de l'initialisation, elle crée deux lumières et les active.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    /*------------------------------------------------------------------
      Function	  :	InitLight
      Description :	Initializes OpenGL Lights. We use two lights, a 
    				directionnal and a local one
    ------------------------------------------------------------------*/
    void BGLManager::InitLight()
    {
    	// Light 0 Settings
    	// ----------------
    	// Directionnal Light - direction {-25,-5,-15)
    	//(coming from behind the camera, top-left)
    	GLfloat l0Position[4]={25.0f,5.0f,15.0f,0.0f};
    	GLfloat l0Diffuse [4]={0.6f,0.6f,0.6f,1.0f};
    	GLfloat l0Specular[4]={1.0f,1.0f,1.0f,1.0f};
    	glLightfv(GL_LIGHT0,GL_POSITION, l0Position);
    	glLightfv(GL_LIGHT0,GL_DIFFUSE, l0Diffuse);
    	glLightfv(GL_LIGHT0,GL_SPECULAR, l0Specular);
     
    	// Light 1 Settings
    	// ----------------
    	// Positionnal Light - position {0, 0, 50}
    	// (behind the camera, up)
    	GLfloat l1Position[4] = {0.0f, 0.0f, 50.0f,1.0f};
    	GLfloat l1Diffuse [4] = {0.6f,0.6f,0.6f,1.0f};
    	GLfloat l1Specular[4] = {1.0f,1.0f,1.0f,1.0f};	
    	glLightfv(GL_LIGHT1,GL_POSITION, l1Position);
    	glLightfv(GL_LIGHT1,GL_DIFFUSE , l1Diffuse );
    	glLightfv(GL_LIGHT1,GL_SPECULAR, l1Specular);	
     
    	// Global Lighting parameters
    	// --------------------------
        GLfloat LModelAmbient[4] ={0.1f,0.1f,0.1f,1.0f};
        glLightModelfv(GL_LIGHT_MODEL_AMBIENT, LModelAmbient);
        glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE);							// Enable dual-side lighting
        glLightModeli(GL_LIGHT_MODEL_LOCAL_VIEWER, GL_TRUE);						// Enable local viewer for better specular reflections
    	glLightModeli(GL_LIGHT_MODEL_COLOR_CONTROL, GL_SEPARATE_SPECULAR_COLOR);	// Separate specular color (to have specular reflections
    																				// on the stamp texture)
    	// Activate Lights
    	glEnable(GL_LIGHT0);						
        glEnable(GL_LIGHT1);						
        glEnable(GL_LIGHTING);						
    }
    si tu tiens à créer une classe pour tes lumieres tu peux par exemple dire que chauque lumiere a une position, une couleur diffuse, une speculaire, etc....

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 29/07/2009, 11h43
  2. Gestion des lumières en 2D
    Par bourriquet_42 dans le forum Physique
    Réponses: 27
    Dernier message: 05/03/2009, 08h12
  3. Gestion de la lumière avec opengl
    Par choko83 dans le forum OpenGL
    Réponses: 11
    Dernier message: 11/12/2008, 09h25
  4. Réponses: 7
    Dernier message: 27/08/2004, 14h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo