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 !