🔒 Locked
Simple Texture Mapping problem
Advertisement
Original Post
I am trying to map a bmp onto a quad following this tutorial: http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=06 To my knowledge, I have included and linked everything correctly. All of my files including the bmp are in the correct directories. When I run the app, the quad shows white, but no bmp is showed. The bmp is 64 x 64 pixels. Like I said, it seems like I've followed all of the rules. I have texture mapped once before, but on a different machine that I believe was running .NET 2003. I am running .NET 2002. If it makes any difference, I have an ATI Radeon 9800 pro. Can anyone help me???
Have you tried debugging to make sure that you're passing a valid array of data to glTexImage2D()? What is your minification filter set to?
Quote:There is a lot of variation possible in the bitmap format, and many of the loaders I've seen don't handle all cases. So a bitmap saved by one program might work whereas the same bitmap saved by another program won't.
Original post by MrBeaner
I don't know what went wrong, but i ended up resaving the bitmap and it loaded without any change in the code.
This should be easy to detect through debugging, though, since you won't have valid data to pass in.
Quote:
Original post by Myopic Rhino Quote:
Original post by Myopic Rhino Quote:There is a lot of variation possible in the bitmap format, and many of the loaders I've seen don't handle all cases. So a bitmap saved by one program might work whereas the same bitmap saved by another program won't.
Original post by MrBeaner
I don't know what went wrong, but i ended up resaving the bitmap and it loaded without any change in the code.
This should be easy to detect through debugging, though, since you won't have valid data to pass in.
Have you tried debugging to make sure that you're passing a valid array of data to glTexImage2D()? What is your minification filter set to?
A)This bmp that I'm using is recognized by another texture mapping .cpp file.
B)Everything passed to glTexImage2D()seems to be on par and both of my filters are set to GL_LINEAR.
C)I might be able to narrow this down though... I have 2 files. One has my loadbmp, texture conversion, draw and main entry point functions. The other has all of the info needed to set up an opengl window. I link both of them to a header file that declares the draw function. This might be where the problem is, but I can't figure out what I should do. Any ideas? Thanks for the replies btw.
Quote:
Original post by Kalidor
Can you post your texture generation code? That will give us a better understanding of what could be going wrong.
I hope this helps...please let me know if you need anything else. Thanks.
GLuint texture[1]; // Storage For One Texture ( NEW )LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); // Declaration For WndProcAUX_RGBImageRec *LoadBMP(char *Filename) // Loads A Bitmap Image{ FILE *File=NULL; // File Handle if (!Filename) // Make Sure A Filename Was Given { return NULL; // If Not Return NULL } File=fopen(Filename,"r"); // Check To See If The File Exists if (File) // Does The File Exist? { fclose(File); // Close The Handle return auxDIBImageLoad(Filename); // Load The Bitmap And Return A Pointer } return NULL; // If Load Failed Return NULL}int LoadGLTextures() // Load Bitmaps And Convert To Textures{ int Status=FALSE; // Status Indicator AUX_RGBImageRec *TextureImage[1]; // Create Storage Space For The Texture memset(TextureImage, 0 ,sizeof(void *) * 1);// Set The Pointer To NULL // Load The Bitmap, Check For Errors, If Bitmap's Not Found Quit if (TextureImage[0]=LoadBMP("w_pawn.bmp")) { Status=TRUE; // Set The Status To TRUE glGenTextures(1, &texture[0]); // Create The Texture // Typical Texture Generation Using Data From The Bitmap glBindTexture(GL_TEXTURE_2D, texture[0]); // Generate The Texture glTexImage2D(GL_TEXTURE_2D, 0, 3, TextureImage[0]->sizeX, TextureImage[0]->sizeY, 0, GL_RGB, GL_UNSIGNED_BYTE, TextureImage[0]->data); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);// Linear Filtering glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR); // Linear Filtering } if (TextureImage[0]) // If Texture Exists { if (TextureImage[0]->data) // If Texture Image Exists { free(TextureImage[0]->data); // Free The Texture Image Memory } free(TextureImage[0]); // Free The Image Structure } return Status; // Return The Status}
OK, I figured it out and I apologize for being such a retard. I figured out that because I had split my functions into 2 files, I wasn't calling a couple of them and thus the texture never existed in the first place. Thanks for all of your help.
[Edited by - 0311 on February 16, 2005 11:40:46 PM]
[Edited by - 0311 on February 16, 2005 11:40:46 PM]
Topic Locked
This topic has been locked by a moderator. New replies are not allowed.
Sign in to reply to this topic.
Advertisement