(i'ai mis à jour le code le nouveau meilleur)
http://www.flickr.com/photos/pkerkm/8251188947/in/photostream bonnes directions
http://www.flickr.com/photos/pkerkm/8252258464/in/photostream mauvaises directions
Nous utilisons la bibliothèque SOIL C++ openGL
Nous avons dessiné les symboles de N, S, W, E sur l'une des images que nous affichons, car nous pensions que les images étaient retournées ou affichées incorrectement. Nous avions raison, mais nous ne sommes pas sûrs de pourquoi et comment le corriger. Notre W est en haut, E en bas, S à droite et N à gauche. Cela signifie que le symbole N est sur le côté gauche, alors qu'il devrait être en haut.
Voici le code où nous générons le tableau tridimensionnel et nos images.
void genTex(){
texture[0]=SOIL_load_OGL_texture // charger un fichier d'image directement en tant que nouvelle texture OpenGL
(
"C:\\Users\\Pkerkm\\Documents\\Visual Studio 2010\\Projects\\files\\gameprojecgraphics\\bloodwall2.png",
SOIL_LOAD_AUTO,
SOIL_CREATE_NEW_ID,
SOIL_FLAG_MIPMAPS | SOIL_FLAG_INVERT_Y | SOIL_FLAG_NTSC_SAFE_RGB | SOIL_FLAG_COMPRESS_TO_DXT
);
glBindTexture(GL_TEXTURE_2D, texture[0]);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
//glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
//glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
}
void /*GraphicsEngine::*/generateMap(){
int i, k, j;
double coordinates[8][3];
for(i=0; i
`
}
Je pense que le problème est ici, mais je ne suis pas sûr de comment le corriger
void /*GraphicsEngine::*/getWallCoordinates(double coordinates[8][3], double x, double y, double z){
int i;
for(i=0;i<8; i++){
if((i/4)>=1){
coordinates[i][1]=BLOCKHEIGHT*(y+1);
}else{
coordinates[i][1]=BLOCKHEIGHT*y;
}
if((i/2)%2==0){
coordinates[i][2]=BLOCKDEPTH*z;
}else{
coordinates[i][2]=BLOCKDEPTH*(z+1);
}
if((i%4)%3==0){
coordinates[i][0]=BLOCKWIDTH*x;
}else{
coordinates[i][0]=BLOCKWIDTH*(x+1);
}
}
}
`