Bonjour,
Je voudrais modifier la lumière suivant l'heure de la journée (rosé, orangé quand tombe la nuit, sombre quand il fait nuit...)
Pour ça je modifie progressivement la partie diffuse de la lumière et je mémorise constamment les coefficients:
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
 
if(EtatJournee==1)
{
	//tombee de la nuit (transition en H+100)
	float cptR=0.0006;
	float cptV=0.002;
	float cptB=0.004;
 
	if(transitionSoleil)
	{
 
		Rdiff+=cptR;
		Bdiff-=cptB;
		Vdiff-=cptV;
 
	glDisable(GL_LIGHT0);
	// Paramètre ambient
	GLfloat light_ambient[] = { 0.15, 0.15, 0.15, 1.0 };
	// Paramètre diffus
	// Couleur à atteindre 0.86,0.6,0.4
	GLfloat light_diffuse[] = { Rdiff, Vdiff, Bdiff, 1.0 };
	// Paramètre spéculaire
	GLfloat light_specular[] = { 0.25, 0.25, 0.25, 1.0 };
	// Position
	GLfloat light_position[] = { 20.0,20.0,50.0,0.7 };
 
	glLightfv (GL_LIGHT0, GL_POSITION, light_position);  
	glLightfv (GL_LIGHT0, GL_AMBIENT, light_ambient);
	glLightfv (GL_LIGHT0, GL_DIFFUSE, light_diffuse);
	glLightfv (GL_LIGHT0, GL_SPECULAR, light_specular);
 
	glEnable(GL_LIGHT0);
 
	if(Rdiff>=0.86)
	transitionSoleil=false;
	}
La progression se fait bien SAUF la première fois que je rentre dans le if:
bizarrement (car les coeffs ne sont pas modifés) la lumière change d'un coup. Je m'explique:

- avant de rentre dans le if j'ai des ombres normales
- j'arrive dedans, et d'un coup j'ai plus d'ombre, la lumière augmente d'intensité alors que rien n'est modifié (position, intensité...)
- ensuite la transition de couleur se fait normalement.

Je comprends pas...