begin process at 2012 05 29 12:58:49
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Linux

 > 

OpenGL

 > 

Multi-Lights OpenGL


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Multi-Lights OpenGL

mercredi 13 septembre 2006 à 19:35:09 | Multi-Lights OpenGL

manolobis

Bonjour,

J'ai un problèmes de lumières sous OpenGL:

J'ai créé une structure de 8 lumières dans mon application mais seule la 1ère lumière éclaire la scène.

J'ai indexé les lumières comme suis:

for(id=0; id<8; id++)
{
  glEnable(GL_LIGHT0+id);
}

Toutes les 8 lumières ont les mêmes caractéristiques de couleurs, atténuations...

Seul la position change (évidement), le 4ème paramètre de la position étant à 1.0 pour toutes les lumières.

J'ai aussi vérifié qu'OpenGL sache gérer 8 lumières, pas de pb de ce côté.

Est-ce que ma méthode d'indexage est correcte, sinon quel est le pb ?

Si quelqu'un à une idée...

Merci.

 

mercredi 13 septembre 2006 à 21:24:43 | Re : Multi-Lights OpenGL

laurent1024

Membre Club
Est ce que tu as mis un n glEnable(GL_LIGHTING); avant de faire des glEnable(GL_LIGHT_...  ?

++
mercredi 13 septembre 2006 à 21:41:48 | Re : Multi-Lights OpenGL

manolobis

Oui, Laurent, j'ai bien mis un
glEnable(GL_LIGHTING);
C'est ce qui me permet d'allumer ou d'éteindre les ou plutôt la lumière GL_LIGHT0, qui elle fonctionne correctement.

Ce sont les autres lumières qui ne fonctionnent pas:
GL_LIGHT0 ok
GL_LIGHT1 à GL_LIGHT7, pas d'éclairage !

Je pensais à un pb d'index, mais il me semble avoir déjà vu sur des tutos la forme GL_LIGHT0+i, bien que la plupart des tutos ne traitent que d'une seule lumière (en général GL_LIGHT0).

Curieux, non !?
mercredi 13 septembre 2006 à 21:54:27 | Re : Multi-Lights OpenGL

luhtor

L'index est correct, suffit d'ouvrir gl.h pour s'en assurer. Mais je vois pas trop ce qui pourrait merder. Post un peu de code voir.
mercredi 13 septembre 2006 à 23:00:00 | Re : Multi-Lights OpenGL

manolobis

Je pense aussi, Luhtor, que l'index est correct d'autant plus que je viens de consulter un site qui explique le fonctionnement d'une scène avec plusieurs sources d'éclairage:
rvirtual.free.fr/programmation/OpenGl/Eclairage.htm
et qui utilise le même système d'indexation GL_LIGHTi = GL_LIGHT0+i, c'est pas une équation digne d'Enstein !
Pour ce qui est de poster du code, il fait partie d'un moteur 3D, cela risque d'être volumineux, mais il n'a rien de sorcier.
En gros j'active ou désactive la lumière par appel à une fonction pour le
glEnable(GL_LIGHTING), glDisable(GL_LIGHTING). Ca ça fonctionne puisque la lumière '0' dans ce cas éclaire ou non la scène.
Puis j'ai une fonction qui me permet d'activer ou désactiver chaque lumière:

void DN3D_LIGLIB_LigChgFlg(int id)

{

  if(id<DN3D_LIGLIB_LIGMAX)

  { 

    DN3D_LIGLIB_Var[id].Lif = DN3D_LIGLIB_Var[id].Lif ? false:true;

    if(DN3D_LIGLIB_Var[id].Lif = =true) glEnable(GL_LIGHT0+id);
    else                                                      glDisable(GL_LIGHT0+id);
  }
}

Avec DN3D_LIGLIB_LIGMAX = 8;
Et DN3D_LIGLIB_Var[id].Lif sont les interrupteurs des lumières.

... voilà, rien d'exotique !

jeudi 14 septembre 2006 à 17:01:26 | Re : Multi-Lights OpenGL

laurent1024

Membre Club
Il faudrait que tu vérifie les parametres sur temps lampes pour etre sur qu'il soient corrects et aussi vérifier que les glEnable(Gl_LIGHT ...) soit bien appellés au bon moment.




Cette discussion est classée dans : opengl, id, multi, lumières, lights


Répondre à ce message

Sujets en rapport avec ce message

GL_MAX_LIGHTS [ par manolobis ] Bonjour à tous, toutes,Sous OpenGL et concernant les lumières on retrouve souvent les information suivantes:- Le nombre de lumières maxi dépend de l'i Multi composant OpenGL [ par titititi899 ] Bonjour,Je suis en trainde developper une dll permettant de creer un composant graphique. Ce composant peut se charger dans une application MFC, dans fichiers [ par edf102 ] bonjour,je suis en train de faire un prog qui lit un fichier pgm(image)puis le copiepour ce faire j'utilisecette methode :#include int main() {      i fstream [ par edf102 ] bonjour,je suis en train de faire un prog qui lit un fichier pgm(image)puis le copiepour ce faire j'utilisecette methode :#include int main() {      i probleme affectation structure [ par cimcim ] Bonjour à tous... Je suis en train d'écrire un décodeur de table sdt (api dvb), mais j'ai un souci lors de l'affectation de ma structure... En gros, m Lightmaps OpenGL [ par manolobis ] Bonjour, Après avoir épuisé les ressources de la gestion des lumières sous openGL (Windows / Dev++) qui sont trop limitées pour mon application je m Problème d'affichage de texture [ par Turok ] Bonjour,Alors voila le problème est simple, voici un code que j'utilise pour afficher une simple image 2d en utilisant OpenGl et SDL, mais celui ci ne [OpenGL] "Normal" d'un Pixel [ par cuq ] Bonjour,J'utilise les fonctions glReadPixels &  gluUnProject pour avoir les coordonnées d'un point sélectionné dans un rendu Opengl. Je me demandai s' Texte openGL/Glut [ par thomasvd ] Bonjour!J'ai découvert openglgmut sdl et tout le tralala il y a quelques jours et j'avoue que je m'y perd un peu.En fait je voudrais afficher du texte opengl [ par DarKBreToN ] Bonjour,je débute en openGl et je souhaite réaliser un espace 3D fixe (un cube) dans lequel une boule se déplacerai et rebondirai sur les parois.Je ne


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,484 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales