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
| glEnableClientState( GL_VERTEX_ARRAY );
glVertexPointer( 3, GL_FLOAT, 0, m_TabVertex );
glDisable(GL_TEXTURE_2D);
// Marquage de la lumière dans la scène par une boule
glPushMatrix();
glTranslatef( fff[0], fff[1], fff[2] ); // Positionnement de la lumière
glDisable( GL_LIGHTING );
glColor3f( 0.0f, 1.0f, 1.0f );
gluSphere( gluNewQuadric(), 0.05, 64, 64 );
glPopMatrix();
glEnable( GL_LIGHTING );
glEnable(GL_LIGHT0); // Activation de la lumière
// Paramétrage de la lumière
glLightfv( m_refLight, GL_POSITION, fff );
glLightfv( m_refLight, GL_AMBIENT, m_ColorAmbient );
glLightfv( m_refLight, GL_DIFFUSE, m_ColorDiffuse );
glLightfv( m_refLight, GL_SPECULAR, m_ColorSpecular );
// Définition du materiau
glMaterialfv( GL_FRONT_AND_BACK, GL_AMBIENT, m_Ambient );
glMaterialfv( GL_FRONT_AND_BACK, GL_DIFFUSE, m_Diffuse );
glMaterialfv( GL_FRONT_AND_BACK, GL_SPECULAR, m_Specular );
glMaterialf( GL_FRONT_AND_BACK, GL_SHININESS, 50.0f );
glBegin(GL_TRIANGLES);
initTemps(); // Calcul du temps consommé, initialisation du chrono
for( int i=0; i < m_NumFaces ; i++ ) // dessine toutes les faces de la map
{
glNormal3fv( &m_TabVectNormaux[(9*i)] );
glArrayElement( m_TabFaces[3*i] );
glNormal3fv( &m_TabVectNormaux[(9*i)+3] );
glArrayElement( m_TabFaces[(3*i)+1] );
glNormal3fv( &m_TabVectNormaux[(9*i)+6] );
glArrayElement( m_TabFaces[(3*i)+2] );
}
setTemps(m_Nom); // Calcul du temps consommé, relevé du chrono
glEnd();
glDisable( GL_VERTEX_ARRAY ); |
Partager