If help with OpenGl is needed I can give some advice.
To display textures you need to load it into memory, then set it to opengl memory, then bind it when you want to use it and then to set proper texcoords for vertices.
If more details are needed then tell me.
-edit-
i have some time so I'll post brief info how to do it (in C++)
GLuint *textures; // here are stored GL texture indexes
long textures_count; //here is your number of textures that model uses
// --- code for setting up textures ---
//alloc place for texture indexes
textures = malloc( sizeof( GLuint ) * textures_count );
//generate texture id's
glGenTextures( textures_count, textures );
// lets set up textures into openGl memory
for( i=0; i<textures_count; i++ ) {
//set index of texture of which data are we going to change
glBindTexture(GL_TEXTURE_2D, texture[ i ] );
//and set data
glTexImage2D( GL_TEXTURE_2D, 0, 4, texture_size_x, texture_size_y, 0, GL_RGBA, GL_UNSIGNED_BYTE, data );
//data should be ordered bytes of red, green, blue and alpha, each taking one byte. So data size is sizex * sizey * 4
// texture filtering when zooming out
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST );
// texture filering when zooming in
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
} // end of i cycle
// --- displaying ---
long last_texture = -1;
glEnable( GL_TEXTURE_2D ); // enable texturing
glEnable( GL_BLEND ); // enable alpha texturing
//displaying loop for all polygons
for( p=0; p<polygons_size; p++ ) {
//switch texture if polygon has different then last used.
if ( polygon[ p ].texture != last_texture ) {
last_texture = polygon[ p ].texture;
if ( last_texture == NoTexture )
glBindTexture( GL_TEXTURE_2D, 0 ); // 0 means turn off texturing for this polygon
else
glBindTexture( GL_TEXTURE_2D, texture[ last_texture ] ); // set texture to use
}
//by the way, calls to glBingTexture wont do anything if they are called between glBegin() and glEnd() so take care on that.
//vertices loop
glColor3f( 1.0, 1.0, 1.0 );
glBegin( GL_TRIANGLES );
for( v=0; v<3; v++ ) {
glTexCoord2f( vert[ v ].u, vert[ v ].v ); // set texture coords for vertex
glVertex3f( vert[ v ].x, vert[ v ].y, vert[ v ].z ); // vertex coords
}
glEnd();
} // end of poly loop
// -- freeing --
// i think this should do the trick
glDeleteTextures( textures_count, textures );
free( textures );