Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1611 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [Opengl] gluScaleImage

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Opengl] gluScaleImage

n°1435109
casafa
Posté le 01-09-2006 à 14:12:13  profilanswer
 

Bonjour,
 
Je n'arrive pas à utiliser gluScaleImage correctement...mais d'abord j'ai une bête question : est-ce que gluScaleImage va ajouter des pixels noir ou blanc à mon image ou alors il va éllargir mon image et la déformer ?
 
Voici mon code source:

Code :
  1. //glTexture->width and glTexture->height are powers of 2 ?
  2. unsigned int newWidth = 2, newHeight = 2;
  3. while(newWidth < glTexture->width)
  4.  newWidth=newWidth<<1; //Multiply by 2
  5. while(newHeight < glTexture->height)
  6.  newHeight=newHeight<<1; //Multiply by 2
  7. if(newWidth!=glTexture->width || newHeight!=glTexture->height) //Scale image
  8. {
  9.  unsigned char *newTexels = new unsigned char[newWidth*newHeight*glTexture->internalFormat];
  10.  gluScaleImage(format, glTexture->width, glTexture->height, GL_UNSIGNED_BYTE, glTexture->texels, newWidth, newHeight, GL_UNSIGNED_BYTE, newTexels);
  11.  glTexImage2D (GL_TEXTURE_2D, 0, glTexture->internalFormat, glTexture->width, glTexture->height, 0, format, GL_UNSIGNED_BYTE, newTexels);
  12.  //openGL has its own copy of texture data
  13.  delete newTexels;
  14. }else
  15. {
  16.  glTexImage2D (GL_TEXTURE_2D, 0, glTexture->internalFormat, glTexture->width, glTexture->height, 0, format, GL_UNSIGNED_BYTE, glTexture->texels);
  17. }


 
1) D'après mes tests la condition est correctement exécuté quand une des 2 dimentions n'est pas une puissance de 2.
2) Quand j'utilise une image avec des dimention de puissance de 2 : tout fonctionne mais quand l'image n'as pas des dimentions de puissance de 2 : mon application Opengl est super lente (4 à 8 fps au lieu de 130 fps)
 
Merci...

mood
Publicité
Posté le 01-09-2006 à 14:12:13  profilanswer
 

n°1435451
casafa
Posté le 01-09-2006 à 23:48:25  profilanswer
 

Oups je vien de remarqué une grosse erreur :
 
Il fallait que je mette ceci dans le if:
glTexImage2D (GL_TEXTURE_2D, 0, glTexture->internalFormat, newWidth, newHeight, 0, format, GL_UNSIGNED_BYTE, newTexels)
au lieu de ceci:
glTexImage2D (GL_TEXTURE_2D, 0, glTexture->internalFormat, glTexture->width, glTexture->height, 0, format, GL_UNSIGNED_BYTE, newTexels)
 
Par contre j'ai toujours une erreur : l'image de départ est tout à fait différente de l'image après avoir fait un gluScaleImage...est-ce que je serait trompé dans un paramètre ?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [Opengl] gluScaleImage

 

Sujets relatifs
[OpenGl] Menu + Quelques questionsopenGl
[OpenGL] Corruption avec glTexSubImage2D ?[OpenGL] ARB extensions & win vista beta
[c] OpenGL ou DirectX[OpenGL && FMOD] Lire un mp3
[Opengl] coordonnées des textures...[OpenGL] Charger une texture BMP
[OpenGL] Filmer une application opengl[opengl]Pb: liberation mémoire textures [RESOLU]
Plus de sujets relatifs à : [Opengl] gluScaleImage


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR