Help with Texture Mapping and Nehe's TUT 24

Started by
4 comments, last by ltrain_riders 21 years, 5 months ago
Well I adopted nehe''s example in tut #24 for texture mapping .TGA files. I can get it to texture map using the Floor.TGA file but File.TGA does not work. I tried using the File.TGA in textures[0].textID and the base won''t texture map. When I swap "file.TGA" and "Floor.TGA" back, it works but "file.TGA still doesn''t. I''m suspecting something is wrong with my File.TGA but I''m not completely sure. I used 123Graphic Converter to convert the once JPEG into the current TGA file. here is my code http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=1573
Advertisement
The problem might be the color depth of the image or the size.
If the size of the image is something strange make the sth like 256x256.



World of Entaria|Shadowy Tree
Omnium rerum principia parva sunt.
Think twice before you code!!
Black Knight
No it is not the file. The problem has to do with the if statement in void init( ). I have if( (LoadTGA(&textures[0],"wood.TGA")) || (LoadTGA(&textures[1],"Floor.TGA") )) { }
Any .TGA file will load and texture map in &textures[0] but if I try to use that same texture, or any other texture and load it in &textures[1], my objects binded to textures[1] wont be that texture, the objects turn gray. I don''t know if my LoadTGA function is properly generating the second texture. I adopted Nehe''s code from Tutorial #24 because I can''t get glaux.h to work so I use the method of loading .TGA files. Here''s my code:
http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=1611
can somebody help me and tell me what i''m doing wrong and correct.
// Build A Texture From The Data
glGenTextures(2, &texture[0].texID); // Generate OpenGL texture IDs
glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE );
glBindTexture(GL_TEXTURE_2D, texture[0].texID); // Bind Our Texture
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); // Linear Filtered
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); // Linear Filtered

if (texture[0].bpp==24) // Was The TGA 24 Bits
{
type=GL_RGB; // If So Set The 'type' To GL_RGB
}
glTexImage2D(GL_TEXTURE_2D, 0, type, texture[0].width, texture[0].height, 0, type, GL_UNSIGNED_BYTE, texture[0].imageData);

--------
You seem to be only creating the [0] texture you have to do that for the [1] too.Try that and see what happens.
O_o


World of Entaria|Shadowy Tree
Omnium rerum principia parva sunt.
Think twice before you code!!
Black Knight

[edited by - Black Knight on November 4, 2002 1:43:45 AM]
The problem was I was using || in my if statement inside the intit() so I switched to &&; this way both loads get called. However my next problem is resizing my screen. When I press ''f'' and ''w'' to resize the screen I lose my textures.
Here''s my updated code:
http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=1637
How is it possible to texture map N amount of time across the face of an object using this code:
glBegin(GL_QUADS);
glTexCoord2f( 10.0f, 10.0f );glVertex3f( 5.1f, 0.1f, -4.1f );// back right
glTexCoord2f( 0.0f, 10.0f );glVertex3f( -5.1f, 0.1f, -4.1f );//back left
glTexCoord2f( 0.0f, 0.0f );glVertex3f( -5.1f, 0.1f, 4.1f );//front left
glTexCoord2f( 10.0f, 0.0f );glVertex3f( 5.1f, 0.1f, 4.1f ); //front right

/* bottom of base */
glTexCoord2f( 10.0f, 10.0f );glVertex3f( 5.1f, 0.0f, -4.1f );// back right
glTexCoord2f( 0.0f, 10.0f );glVertex3f( -5.1f, 0.0f, -4.1f );//back left
glTexCoord2f( 0.0f, 0.0f );glVertex3f( -5.1f, 0.0f, 4.1f );//front left
glTexCoord2f( 10.0f, 0.0f );glVertex3f( 5.1f, 0.0f, 4.1f ); //front right

/* right side of base */
glTexCoord2f( 10.0f, 10.0f );glVertex3f( 5.1f, 0.1f, -4.1f );//top right
glTexCoord2f( 0.0f, 10.0f );glVertex3f( 5.1f, 0.1f, 4.1f );//top left
glTexCoord2f( 0.0f, 0.0f );glVertex3f( 5.1f, 0.0f, 4.1f );//bottom left
glTexCoord2f( 10.0f, 0.0f );glVertex3f( 5.1f, 0.0f, -4.1f );//bottom right

/* left side of base */
glTexCoord2f( 10.0f, 10.0f );glVertex3f( -5.1f, 0.1f, 4.1f );//top right
glTexCoord2f( 0.0f, 10.0f );glVertex3f( -5.1f, 0.1f, -4.1f );//top left
glTexCoord2f( 0.0f, 0.0f );glVertex3f( -5.1f, 0.0f, -4.1f );//bottom left
glTexCoord2f( 10.0f, 0.0f );glVertex3f( -5.1f, 0.0f, 4.1f );//bottom right

/* front of base */
glTexCoord2f( 10.0f, 10.0f );glVertex3f( 5.1f, 0.1f, 4.1f );//top right
glTexCoord2f( 0.0f, 10.0f );glVertex3f( -5.1f, 0.1f, 4.1f );//top left
glTexCoord2f( 0.0f, 0.0f );glVertex3f( -5.1f, 0.0f, 4.1f );//bottom left
glTexCoord2f( 10.0f, 0.0f );glVertex3f( 5.1f, 0.0f, 4.1f );//bottom right

/* back of base */
glTexCoord2f( 10.0f, 10.0f );glVertex3f( 5.1f, 0.1f, -4.1f );//top right
glTexCoord2f( 0.0f, 10.0f );glVertex3f( -5.1f, 0.1f, -4.1f );//top left
glTexCoord2f( 0.0f, 0.0f );glVertex3f( -5.1f, 0.0f, -4.1f );//bottom left
glTexCoord2f( 10.0f, 0.0f );glVertex3f( 5.1f, 0.0f, -4.1f );//bottom right
glEnd( );

This topic is closed to new replies.

Advertisement