2012-05-25 1 views
0

J'ai besoin de télécharger une image dans mon fond ... Est-ce que quelqu'un sait comment faire cela? Je sais que je dois faire les étapes suivantes:comment charger une image dans opengl

1) Load image data into system memory 
2) Generate a texture name with glGenTextures 
3) Bind the texture name with gBindTexture 
4) Set wrapping and filtering mode with glTexParameter 
5) call glTexImage2D with the right parameters depending on the image nature to load image data into video memory 

mais je ne sais pas comment les mettre en opengl

+0

4) est wromg. La définition du filtrage des textures et du mode d'enrubannage n'est pas requise pour le chargement d'une image. Mais vous devriez (mieux vaut) définir les paramètres de stockage avant de télécharger avec [glPixelStore] (http://www.opengl.org/sdk/docs/man/xhtml/glPixelStore.xml) – datenwolf

+0

@datenwolf: En fait, ne pas définir le Le mode de filtrage peut conduire à une texture incomplète. –

+0

@NicolBolas: Oui, mais la spécification OpenGL spécifie que le filtre de minification peut être défini et modifié à tout moment. Donc, bien qu'il devrait être défini à un certain point, il n'est pas nécessaire de le définir avant de télécharger les données de texture. Rappelez-vous aussi comment fonctionnent les objets de l'échantillonneur. – datenwolf

Répondre

1

OpenGL prend en charge les textures et les images ... mais l'utilisateur doit fournir les données . Vous devez donc utiliser la bibliothèque sme ou un code supplémentaire pour charger les données.

Je suggère d'utiliser très simple SOL lib - http://www.lonesock.net/soil.html Ou une bibliothèque fournie par votre SDK

en général:

load texture bytes into pBytes; 
glTexImage2D(..., ..., ..., pBytes); 
Questions connexes