asmanur
Messages postés230Date d'inscriptionmercredi 11 février 2004StatutMembreDernière intervention 4 août 2005
-
25 août 2004 à 19:37
cs_tibur
Messages postés101Date d'inscriptionsamedi 9 février 2002StatutMembreDernière intervention 5 mai 2009
-
2 sept. 2004 à 00:40
Bonjour!
J'ai des problèmes de textures avec OpenGL, en effet lorsque j'utilise diverse sources pour charger un bmp et le charger en mémoire. Après lorsque je veux la "coller sur un rectange elle ne s'affiche pas! J'utilise pourtant des images de taille 2^n*2^n
Je programme sous dev C++
/*-------------------------FONCTONS-------------------------------------------*/
GLuint id;//id de la texture
void Display();//affiche
void Reshape(int we,int he);//s'occupe de la caméra
GLuint Textures();
GLuint Textures()
{
int Data[12]={1,0,0,//le pointeur sur la texture
0,0,1,
1,0,0,
0,0,1};
glGenTextures(1,&id);
glBindTexture(GL_TEXTURE_2D,id);
glPixelStorei(GL_UNPACK_ALIGNMENT,1);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_REPEAT);
glTexImage2D
(
GL_TEXTURE_2D, //target
0, //mipmap level
3, //nb couleurs
1, //largeur
1, //hauteur
0, //largeur du bord
GL_RGB, //type des couleurs
GL_INT, //codage de chaque composante
Data //Image
);
return id;
}
/*---------------------------MAIN---------------------------------------------*/
int main(int argc, char *argv[])
{
id=Textures();
glutInit(&argc,argv);/*on initialise OpenGL*/
glutInitDisplayMode(GLUT_RGBA GLUT_DOUBLE glutInitWindowSize(1024,860);/*la taile de la window*/
glutInitWindowPosition(0,0);
glutCreateWindow("Test pour OpenGL");/*on la crée*/
glutReshapeFunc(Reshape);/*gestionnaires*/
glutDisplayFunc(Display);/*les fonctions*/
glutSpecialFunc(Clavier);
glutIdleFunc(Idle);
//Parametre du blending
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
//activation du blending
glEnable(GL_BLEND);
glutMainLoop(); // lance le gestionnaire glut
}
void Display(){
glClearColor(1,1,1,0);
glClear(GL_COLOR_BUFFER_BIT); // efface le frame buffer
gagah1
Messages postés509Date d'inscriptionsamedi 28 juin 2003StatutMembreDernière intervention 3 août 2010 26 août 2004 à 21:48
1) dans la fn Texture(): avec glTexImage2D, la taille de l'image doit etre une puissance de 2 . Ici 1x1.
2) dans Display(): glColor4d(0,0,0,0); tu a mis en transparent l'image (ici alpha = 0), alors rien qui s'affiche. plutôt glColor4d(1,1,1,1);
asmanur
Messages postés230Date d'inscriptionmercredi 11 février 2004StatutMembreDernière intervention 4 août 2005 27 août 2004 à 14:40
Pourtant 1 = 2^0!
C'est normal c'est que déconcerté par l'échec de la texture j'en ai fait une de 1x1 mais j'ai recompilé en corrigeant ca marche tjrs pas !!(bouhhhhhh)
Vous n’avez pas trouvé la réponse que vous recherchez ?