複数のテクスチャを必要とするアニメーション プロジェクトがあります。すべてのテクスチャを表示したいのですが、モデルのテクスチャ カバーは 1 つだけです。オブジェクトのすべての tga ファイルを表示できません。
GLuint LoadTexture(char *TexName)
{
TGAImg Img; // Image loader
// Load our Texture
if(Img.Load(TexName)!=IMG_OK)
return -1;
glGenTextures(1,textures); // Allocate space for texture
glBindTexture(GL_TEXTURE_2D,textures[0]); // Set our Tex handle as current
// Create the texture
if(Img.GetBPP()==24)
glTexImage2D(GL_TEXTURE_2D,0,3,Img.GetWidth(),Img.GetHeight(),0,GL_RGB,GL_UNSIGNED_BYTE,Img.GetImg());
else if(Img.GetBPP()==32)
glTexImage2D(GL_TEXTURE_2D,0,4,Img.GetWidth(),Img.GetHeight(),0,GL_RGBA,GL_UNSIGNED_BYTE,Img.GetImg());
else
return -1;
// Specify filtering and edge actions
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_CLAMP);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_CLAMP);
return textures[0];
}
void Draw()
{
glEnable(GL_TEXTURE_2D);
glGenTextures(17,textures);
for (int i = 0; i<17; i++){
textures[i] = LoadTexture(textureNames[i
glBindTexture(GL_TEXTURE_2D, textures[i]);
}
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_NORMAL_ARRAY);
glVertexPointer(3,GL_FLOAT,0,triangleArr);
glNormalPointer(GL_FLOAT, 0, normals);
glDrawArrays(GL_TRIANGLES, 0, TotalConnectedTriangles);
glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_NORMAL_ARRAY);
}
void initialize ()
{
glViewport(0, 0, 500, 500);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0, 1, 0.1, 1000.0);
glMatrixMode(GL_MODELVIEW);
glClearColor( 0.0f, 0.0f, 0.0f, 0.0f );
glShadeModel( GL_SMOOTH );
glEnable( GL_DEPTH_TEST );
glEnable(GL_TEXTURE_2D);
textures[textureIndex] = LoadTexture(textureNames[textureIndex]);
glBindTexture(GL_TEXTURE_2D, textures[textureIndex]);
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glTexCoordPointer(2, GL_FLOAT, 0, textureArr);
}
</code>`enter code here`
obj ファイルを投稿する必要があるかどうかわかりません。