Original Post
Hi, when I am multitexturing a polygon in my program, the overlay texture is always rendered fully bright. How come, how can I fix that? Sample code: [Edited by - karx11erx on April 7, 2006 10:19:03 AM]
typedef float tVertexf [3];
typedef struct tRGBAf {float r,g,b,a;} tRGBA;
typedef struct tTexCoordf {float u,v;} tTexCoord;
void RenderPoly (GLuint tex1, GLuint tex2, tVertexf *pv, tTexCoordf *ptc, int nv, tRGBAf *pc)
{
glEnable (GL_TEXTURE_2D);
//TMU 0 for base textures
glActiveTexture (GL_TEXTURE0_ARB);
glBindTexture (GL_TEXTURE_2D, tex1);
glEnable (GL_TEXTURE_2D);
glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
// TMU 1 for overlay texture
glActiveTexture (GL_TEXTURE1_ARB);
glBindTexture (GL_TEXTURE_2D, tex2);
glEnable (GL_TEXTURE_2D);
glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
glBegin (GL_TRIANGLE_FAN);
for (; nv; nv--, pv++, ptc++) {
glMultiTexCoord2f (GL_TEXTURE0_ARB, ptc->u, ptc->v);
glMultiTexCoord2f (GL_TEXTURE1_ARB, ptc->u, ptc->v);
glColor4f (pc->r, pc->g, pc->b, pc->a);
glVertex3f (pv->x, pv->y, pv->z);
}
glEnd ();
glDisable (GL_TEXTURE_2D);
}
