I'm rendering a mesh that is two parts, and each part may have one of two different setups for multi-texturing.
//Take this example.
for(int i = 0; i < numMeshePieces; i++){ //Setup MultiTexturing if(conditionTrue) { glActiveTextureARB(GL_TEXTURE0_ARB); glEnable(GL_TEXTURE_CUBE_MAP); glBindTexture(GL_TEXTURE_CUBE_MAP, pointer1); glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE); glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_REPLACE); glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB, GL_TEXTURE); glActiveTextureARB(GL_TEXTURE1_ARB); glEnable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D, pointer2); glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE); glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_DOT3_RGB); glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB, GL_PREVIOUS); glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB, GL_TEXTURE); glActiveTextureARB(GL_TEXTURE2_ARB); glEnable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D, pointer3); glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); }else{ //Texture Stage 0 glActiveTextureARB(GL_TEXTURE0_ARB); glEnable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D, pointer1); glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_EXT); //Texture Stage 1 glActiveTextureARB(GL_TEXTURE1_ARB); glEnable(GL_TEXTURE_1D); glBindTexture(GL_TEXTURE_1D, pointer2); glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_EXT); } for(int p = 0; p < numPolys; p++) { //DO RENDERING }}
If I do the thing like this the first mesh piece will render correctly, but then the subsequent ones will render and not be correct. They'll turn out like Gray. >_>
Must I disable or deactivate the texture stages or something? Any feedback would be appreciated. Thanks. ^^
[Edited by - Jinroh on August 30, 2010 8:40:58 PM]