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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
|
if(EtatJournee==0)
{
//Jour (transition en H+100)
float cptRVB=0.006;
if(transitionSoleil)
{
Rdiff+=cptRVB;
Bdiff=Rdiff;
Vdiff=Rdiff;
glDisable(GL_LIGHT0);
// Paramètre ambient
GLfloat light_ambient[] = { 0.15, 0.15, 0.15, 1.0 };
// Paramètre diffus
// Normale 0.8,0.8,0.8
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.8)
transitionSoleil=false;
}
}
else 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);
GLfloat global_ambient[] = { 0.1f, 0.1f, 0.1f, 1.0 };
glLightModelfv (GL_LIGHT_MODEL_AMBIENT, global_ambient);
// Paramètre ambient
GLfloat light_ambient[] = { 0.15, 0.15, 0.15, 1.0 };
// Paramètre diffus
// Normale 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;
}
}
else
{
//nuit (transition en H+100)
float cptR=0.0066;
float cptV=0.004;
float cptB=0.002;
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
// Normale 0.20,0.20,0.20
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.20)
transitionSoleil=false;
}
} |
Partager