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
| glPushMatrix();
glRotatef( ang, 0.0f, 1.0f,0.0f);
glTranslatef(xp,haut,yp);
/* glEnableClientState( GL_VERTEX_ARRAY );
glEnableClientState(GL_TEXTURE_COORD_ARRAY);*/
// Utilisation des données des buffers
int err;
glEnable(GL_TEXTURE_2D);
glBindBuffer(GL_ARRAY_BUFFER, lesvertex);
glVertexPointer( 3, GL_FLOAT, 3 * sizeof(float),BUFFER_OFFSET( 0 ));
//glColorPointer( 3, GL_FLOAT, 2 * sizeof(float), 0 );
glClientActiveTexture(GL_TEXTURE0);
glBindBuffer(GL_ARRAY_BUFFER, lestextures);
// Activation d'utilisation des tableaux
//glTexCoordPointer(2, GL_FLOAT, sizeof(MyVertex), BUFFER_OFFSET(24));
glTexCoordPointer(2, GL_FLOAT, 2 * sizeof(float),BUFFER_OFFSET( 0));
//glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, IndexVBOID);
glEnable(GL_FOG);
GLfloat fogColor[4] = {0.5, 0.5, 0.5, 1.0};
int fogMode = GL_EXP;
glFogi (GL_FOG_MODE, fogMode);
glFogfv (GL_FOG_COLOR, fogColor);
glFogf (GL_FOG_DENSITY, 0.35);
glEnableClientState( GL_VERTEX_ARRAY );
// Rendu de notre géométrie
//glDrawElements(GL_TRIANGLES, ne, GL_UNSIGNED_INT, 0);
int ns=ne/3.0;
glBindTexture(GL_TEXTURE_2D,murneg);
glEnableClientState( GL_TEXTURE_COORD_ARRAY );
for (int i = 0 ; i<ns/3;i++)
{
if (i>(ns*0.15)) //beaucoup de brouillard à partir du tiers des primitives
{
glFogf (GL_FOG_DENSITY, 0.99);
}
glDrawArrays(GL_TRIANGLES,i*3,3);
}
//MULTIPLE TEXTURE, 2 TEXTURES dans tout le VBO
/*glEnableClientState( GL_TEXTURE_COORD_ARRAY );
glDrawArrays(GL_TRIANGLES,0,ns/2.0);
glDisableClientState( GL_TEXTURE_COORD_ARRAY );
glBindTexture(GL_TEXTURE_2D,mur);
glEnableClientState( GL_TEXTURE_COORD_ARRAY );
glDrawArrays(GL_TRIANGLES,ns/2.0,ns/2.0);*/
glDisableClientState( GL_TEXTURE_COORD_ARRAY );
glDisableClientState( GL_VERTEX_ARRAY );
static int nufps=0;
static int ds=GetTickCount();
nufps++;
if ((GetTickCount()-ds)>1000)
{
nufps=0;
ds=GetTickCount();
}
//DrawPanneau(1.5,0);
glPopMatrix(); |
Partager