-
1 pièce(s) jointe(s)
Problème de texture
Bonjour!
J'utilise C::B 8.02 et j'ai créé un projet opengl, il affiche un cube de taille défini et bleu et un plan de 10x10 carrés avec des hauteurs aléatoire et en fil de fer blanc. Le problème est ici, en fait il devrait afficher des textures sur chacun des carrés. je me permet donc de joindre mon projet en espérant que quelqu'un pourra m"expliquer pourquoi. Si il voit d'autre soucis je suis preneur aussi, mais enfin bon je ne voit que ça qui cloche pour le moment.
Merci d'avance.
-
Bonjour,
Je n'ai pas eut le temps de regarder en détail le code, mais le chargement de l'image me parait faux :
- Les dimensions de l'image semblent fausses;
- Tu charges ton bmp comme s'il était une image brute alors qu'il possède un header...
- erreur () / [] data = new BYTE ( ... ). Les parenthèses devraient être des crochets.
Le site NEHE propose un bon tutoriel sur le sujet : http://nehe.gamedev.net/data/lessons....asp?lesson=06
-
Merci, j'ai corrigé mes parenthèses/crochets, en fait j'ai modifié la fonction pour qu'elle gère les en-tête comme tu me l'as conseillé, pour cela je me suis servi de Corona, mais le problème est toujours là, j'ai un plan en fil de fer :s. Je te joints la fonction comme je l'ai modifiée.
Matrice :: Matrice ( int L , int P , int TL , int TP , const char * NomDuFichier )
{
int I , J ;
corona::Image* ImageT = corona::OpenImage( NomDuFichier ) ;
Largeur = L ;
Profondeur = P ;
TailleLargeur = TL ;
TailleProfondeur = TP ;
X = 0 ;
Y = 0 ;
Z = 0 ;
// Initialisation de la matrice des profondeurs
Hauteur = new int * [ L + 1 ] ;
for ( I = 0 ; I < L + 1 ; I ++ )
{
Hauteur [ I ] = new int [ P + 1 ] ;
}
for ( J = 0 ; J < P + 1 ; J ++ )
{
for ( I = 0 ; I < L + 1 ; I ++ )
{
Hauteur [ I ] [ J ] = 0 ;
}
}
// Récupération de la texture
int width = ImageT->getWidth ( ) ;
int height = ImageT->getHeight ( ) ;
unsigned char* pixels = ( unsigned char* ) ImageT->getPixels ( ) ;
glGenTextures ( 1 , &Texture ) ;
glBindTexture ( GL_TEXTURE_2D , Texture ) ;
glTexImage2D ( GL_TEXTURE_2D , 0 , 4 , width , height , 0 , GL_RGBA, GL_UNSIGNED_BYTE , pixels ) ;
glTexParameteri ( GL_TEXTURE_2D , GL_TEXTURE_MIN_FILTER , GL_LINEAR ) ;
glTexParameteri ( GL_TEXTURE_2D , GL_TEXTURE_MAG_FILTER , GL_LINEAR ) ;
glBindTexture ( GL_TEXTURE_2D , Texture ) ;
delete ImageT ;
}
Merci de m'aider en tout cas.