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 :

éclairage d'une scene


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2006
    Messages
    166
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Décembre 2006
    Messages : 166
    Par défaut éclairage d'une scene
    Bonjour,

    voilà c'est la première foi que je manipule l'éclairage en OpenGL et j'ai quelques soucis.

    J'ai créé une scene 3D où je veux me déplacer à l'intérieur, j'ai programmé les mouvement de caméra impeccable avec gluLookAt.

    ma fonction de redessinage est celle ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    	glMatrixMode(GL_MODELVIEW);
    	glLoadIdentity();
    	gluLookAt(-cam.x, cam.z, cam.y, -ref.x, ref.z, ref.y,0,1,0);
    	building.Draw();
    je voudrais avoir une lumière style "lampe torche" qui se déplace dans la scène avec la caméra pour éclairer ce que je vois.

    mais j'y arrive pas des masse. dans quel sens doit se trouver le vecteur z ?
    car j'ai construit des bâtiment qui montent vers l'axe y (en faite les mouvement de caméra se font par translation et par rotation toujours dans le meme plan sur y).

  2. #2
    Membre émérite Avatar de MatRem
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 750
    Par défaut
    Tu veux avoir une lampe torche qui se déplace avec la caméra.
    C'est à dire qui ne se déplace pas puisque c'est la scène qui bouge et non la caméra.

    Donc il faut tout simplement que tu "affiches" (glLightfv( GL_LIGHT0, GL_POSITION, ...) ) ton spot juste après le glLoadIdentity(). Normalement si ton spot éclaire vers -z ça devrait le faire.

    ps : les spots OpenGL sont pas très beau.

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2006
    Messages
    166
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Décembre 2006
    Messages : 166
    Par défaut
    c'est clair c'est pas beau...

    mais ca marche pas des masses en plus car je me déplace dans la scene et ca foire pas mal.

    donc si je comprends bien ce que tu dis le GluLookAt fait bouger la scene c'est pas le mouvement de la caméra ?
    oky j'avais pas compris comme ça

    en plus les murs de ma scéne sont des gros polygone pas plein de petits.... c'est assez crade du coup...

    il y a moyen d'avoir un truc plus beau dans ce contexte ??

  4. #4
    Membre éprouvé Avatar de razmott
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 133
    Par défaut
    Salut !

    A part la tesselation (diviser les gros polygones) le plus simple, c'est d'utiliser les shaders et faire du per pixel lighting, ou encore un éclairage une projection de texture. Enfin les méthodes sont nombreuses et déjà très bien expliquées :

    http://mdeverdelhan.developpez.com/t.../dynamiclight/

    Bon coding !

    @ +

  5. #5
    Membre émérite Avatar de MatRem
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 750
    Par défaut
    le GluLookAt fait bouger la scene c'est pas le mouvement de la caméra ?
    En fait, si on veut être précis, c'est en effet ce qui se passe.
    Mais si tu fais l'analogie avec l'appareil photo tu peux dire que bouger l'appareil revient à bouger tout l'espace dans le sens contraire (cependant c'est pas trés facile en vrai ) ...

Discussions similaires

  1. charger une scene dans la memoire de la carte video
    Par Arnaudv6 dans le forum OpenGL
    Réponses: 10
    Dernier message: 11/09/2004, 01h44
  2. [FLASH 5]un bouton dans une image pour revenir sur une scene
    Par patato valdes dans le forum Flash
    Réponses: 7
    Dernier message: 28/04/2004, 20h21
  3. basculer d'une scene a l'autre
    Par singe dans le forum OpenGL
    Réponses: 4
    Dernier message: 10/12/2003, 18h00
  4. generer une image bitmap a partir d'une scene OGL
    Par FreshLog dans le forum OpenGL
    Réponses: 4
    Dernier message: 01/07/2003, 11h29

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