002
30.05.2007, 13:38 Uhr
cmos
|
Also entweder ist meine Textur nicht geladen oder das was du geschrieben hast geht doch nicht
ich rufe schon im Konstruktor loadTexture("G\wood.bmp",&wood); auf (das ist ein G Doppelpunkt Doppelbackslash) wood ist ein privater Member ( GLuint wood ); Habe eine Fläche erzeugt mit GL_QUADS und dann dort versucht eine Textur drauf zulegen. Ich hab noch was von einer AUX Library gehört, aber die kann nur 64x64 Pixelgroße Texturen laden (?)
C++: |
bool COGLTree::loadTexture(CString sFilename, GLuint *pTexName) { //load Bitmap from File HBITMAP hBmp = (HBITMAP) ::LoadImage(NULL, /*(LPCTSTR)*/ sFilename.GetString(), //filename IMAGE_BITMAP, //format hint 0, 0, //whole bitmap LR_LOADFROMFILE | //load format LR_CREATEDIBSECTION); //
if (hBmp == NULL) { return FALSE; }
BITMAP BM; // Get bitmap info. ::GetObject (hBmp,sizeof (BM),&BM); // if (BM.bmBitsPixel != 24) // 24Bit-Bitmap? { return FALSE; // UNBRAUCHBAR }
if (!*pTexName) //Textur schon vorhanden? { glGenTextures(1, pTexName); //Nein, dann Namen gen. } else { return FALSE; //Ja, keine Doppeldef´s; }
::glBindTexture(GL_TEXTURE_2D,*pTexName);//Textur speich. ::glPixelStorei(GL_UNPACK_ALIGNMENT,4); //Pixelablageart ::glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);//0-gesamte Textur ::glPixelStorei(GL_UNPACK_SKIP_ROWS, 0);//0-gesamte Textur ::glPixelStorei(GL_UNPACK_SKIP_PIXELS,0);//0-gesamte Textur ::glTexParameteri(GL_TEXTURE_2D, //Textur Parameter GL_TEXTURE_MAG_FILTER, GL_LINEAR ); //alt.GL_NEAREST); ::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR ); //alt.GL_NEAREST);
::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT ); //alt. GL_CLAMP ::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT ); //alt. GL_CLAMP
//define texture environment ::glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); //Ersetzmodus //build texture MIPMAP ::gluBuild2DMipmaps(GL_TEXTURE_2D, 3, BM.bmWidth, BM.bmHeight, GL_BGR_EXT, GL_UNSIGNED_BYTE, BM.bmBits ); ::glBindTexture(GL_TEXTURE_2D, 0);
return TRUE;
}
|
Dieser Post wurde am 30.05.2007 um 13:38 Uhr von cmos editiert. |