Skip to main content
GameDev.net gamedev.net
🔒 Locked

texture blend after dependent texture?

Started by pixelhead Dec 9, 2005 at 8:05 PM 0 replies 250+ views
Original Post
pixelhead
pixelhead
hi, i'm wondering if it's possible to do a texture blend on the results of a dependent texture lookup? (ie: TEXTURE0 and TEXTURE1 are dependent textures; i want to blend that result with TEXTURE2). i've got the dependent texture lookup working but the blend doesn't do anything (not sure if i setup the blending for TEXTURE2 correctly but at least no GL errors reported): glEnable( GL_TEXTURE_SHADER_NV ); // texture 0 - 3D texture lookup glActiveTexture( GL_TEXTURE0 ); glBindTexture( GL_TEXTURE_3D, m_nLabelTextureID ); glTexEnvi( GL_TEXTURE_SHADER_NV, GL_SHADER_OPERATION_NV, GL_TEXTURE_3D ); // texture 1 - dependent texture glActiveTexture( GL_TEXTURE1 ); glBindTexture( GL_TEXTURE_2D, m_nMaskTextureID ); // alpha/red = tex coords into texture 1 glTexEnvi( GL_TEXTURE_SHADER_NV, GL_SHADER_OPERATION_NV, GL_DEPENDENT_AR_TEXTURE_2D_NV ); glTexEnvi( GL_TEXTURE_SHADER_NV, GL_PREVIOUS_TEXTURE_INPUT_NV, GL_TEXTURE0_ARB ); glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE ); // blend with luminance texture glActiveTexture( GL_TEXTURE2 ); glTexEnvi( GL_TEXTURE_SHADER_NV, GL_SHADER_OPERATION_NV, GL_NONE ); glEnable( GL_TEXTURE_3D ); glDisable( GL_TEXTURE_2D ); glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE ); glTexEnvi( GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_MODULATE ); glTexEnvi( GL_TEXTURE_ENV, GL_COMBINE_ALPHA, GL_MODULATE ); glTexEnvi( GL_TEXTURE_ENV,GL_SOURCE0_RGB,GL_PREVIOUS ); glTexEnvi( GL_TEXTURE_ENV,GL_SOURCE1_RGB,GL_TEXTURE2 ); glTexEnvi( GL_TEXTURE_ENV,GL_SOURCE0_ALPHA,GL_PREVIOUS ); // tell GL the data for Arg0 comes from the previous texture glTexEnvi( GL_TEXTURE_ENV,GL_SOURCE1_ALPHA,GL_TEXTURE2 ); glTexEnvi( GL_TEXTURE_ENV,GL_OPERAND0_RGB,GL_SRC_COLOR ); glTexEnvi( GL_TEXTURE_ENV,GL_OPERAND1_RGB,GL_SRC_COLOR ); glTexEnvi( GL_TEXTURE_ENV,GL_OPERAND0_ALPHA,GL_SRC_ALPHA ); glTexEnvi( GL_TEXTURE_ENV,GL_OPERAND1_ALPHA,GL_SRC_ALPHA ); Render function looks something like: glMultiTexCoord3f( GL_TEXTURE0, (*iter).vTextureCoords.x, (*iter).vTextureCoords.y, (*iter).vTextureCoords.z ); glMultiTexCoord3f( GL_TEXTURE2, (*iter).vTextureCoords.x, (*iter).vTextureCoords.y, (*iter).vTextureCoords.z ); glVertex3f( (*iter).vPos.x, (*iter).vPos.y, (*iter).vPos.z ); Thanks for any tips.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.