Bonjour à tous,
je suis actuellement en train d'implémenter des spots et je suis trés surprise des résultats que j'obtiens (en prenant pourtant les exemples des tutorials...)
En réalité :
- lorsque l'angle du cône au sommet est inférieur à 90 degré, je n'obtiens aucune lumière
- lorsqu'il est égale à 90 degré, j'obtiens bien le résultat voulu
- lorsqu'il est supérieur à 90 degré, j'ai bien une lumière positionnelle
je ne comprends donc pas pourquoi je n'obtiens aucune lumière lorsqu'on mon angle est égal par exemple à 45 degré.
voici, à titre indicatif, les extraits du code qui concernent la lumière. l'objet éclairé est une sphère avec des propriétés ambiante, diffuse, spéculaire, émissive..
Je tiens à préciser que ma sphère est positionnée en (0,-1.5,0), donc vu la direction du projecteur, la sphère devrait être éclairée non?
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 //Propriétés du spot lumnieux GLfloat lightAmbient[]={0.2, 0.2, 0.2,0.0}; GLfloat lightDiffuse[]={1.0, 1.0, 1.0,0.0}; GLfloat lightSpecular[]={1.0, 1.0, 1.0,0.0}; GLfloat lightPosition[]={0.0, 0.0, 0.0,1.0}; GLfloat lightDirection[]={0.0, -1.0, 0.0}; void init(void) { glClearColor(0.0,0.0,0.0,0.5); glEnable(GL_DEPTH_TEST); glLightfv(GL_LIGHT0, GL_AMBIENT, lightAmbient); glLightfv(GL_LIGHT0, GL_DIFFUSE, lightDiffuse); glLightfv(GL_LIGHT0, GL_SPECULAR, lightSpecular); glLightf(GL_LIGHT0, GL_SPOT_CUTOFF, 45); glLightfv(GL_LIGHT0, GL_POSITION, lightPosition); glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, lightDirection); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); glEnable(GL_COLOR_MATERIAL); }
merci pour votre aide
Partager