Hello all,
I just trying to interpolate 2 textures (using ARB_multitexture) and it doesn’t work at all. Please don’t you have any working example of this simple thing?
My code is below. Thanks for any response, I’m
quite desperate already :-?
Jirka
CODE************************:
// loading RGB textures
tex[0] = read_texture(“data/brick.rgb”, &texwid, &texht, &texcomps);
tex[1] = read_texture(“data/brick2.rgb”, &texwid, &texht, &texcomps);
//glGenTextures(2, texNames);
glBindTexture(GL_TEXTURE_2D, texNames[0]); setTexParams();
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, texwid, texht, 0, GL_RGBA, GL_UNSIGNED_BYTE, tex[0]);
glBindTexture(GL_TEXTURE_2D, texNames[1]); setTexParams();
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, texwid, texht, 0, GL_RGBA, GL_UNSIGNED_BYTE, tex[1]);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glActiveTextureARB(GL_TEXTURE0_ARB);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, texNames[0]);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_EXT);
glTexEnvf(GL_TEXTURE_ENV, GL_COMBINE_RGB_EXT, GL_REPLACE);
glActiveTextureARB(GL_TEXTURE1_ARB);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, texNames[1]);
glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, constColor);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_EXT);
glTexEnvf(GL_TEXTURE_ENV, GL_COMBINE_RGB_EXT, GL_INTERPOLATE_EXT);
glTexEnvf(GL_TEXTURE_ENV, GL_SOURCE0_RGB_EXT, GL_PREVIOUS_EXT);
glTexEnvf(GL_TEXTURE_ENV, GL_OPERAND0_RGB_EXT, GL_SRC_COLOR);
glTexEnvf(GL_TEXTURE_ENV, GL_SOURCE1_RGB_EXT, GL_TEXTURE);
glTexEnvf(GL_TEXTURE_ENV, GL_OPERAND1_RGB_EXT, GL_ONE_MINUS_SRC_COLOR);
glTexEnvf(GL_TEXTURE_ENV, GL_SOURCE2_RGB_EXT, GL_CONSTANT_EXT);
glTexEnvf(GL_TEXTURE_ENV, GL_OPERAND2_RGB_EXT, GL_SRC_ALPHA);
glDisable( GL_BLEND );
glBegin(GL_QUADS);
glMultiTexCoord2fARB(GL_TEXTURE0_ARB, 0.f, 0.f);
glMultiTexCoord2fARB(GL_TEXTURE1_ARB, 0.f, 0.f );
glVertex3f(0., 0., 0.);
glMultiTexCoord2fARB(GL_TEXTURE0_ARB, 0.f, 1.f);
glMultiTexCoord2fARB(GL_TEXTURE1_ARB, 0.f, 1.f);
glVertex3f(0., 1., 0.);
glMultiTexCoord2fARB(GL_TEXTURE0_ARB, 1.f, 1.f);
glMultiTexCoord2fARB(GL_TEXTURE1_ARB, 1.f, 1.f);
glVertex3f(1., 1., 0.);
glMultiTexCoord2fARB(GL_TEXTURE0_ARB, 1.f, 0.f);
glMultiTexCoord2fARB(GL_TEXTURE1_ARB, 1.f, 0.f);
glVertex3f(1., 0., 0.);
glEnd();