i am so frustrated with nvidia hardware right now
i am messing around with register combiners on a quadro4 700 GoGL
i have a single RGBA texture bound to unit 0
i have register combiners enabled with the following configuration:
static const float c0[]= { 0.5, 0.5, 0.5, 0.5 };
glCombinerParameteriNV(GL_NUM_GENERAL_COMBINERS_NV,1);
glCombinerStageParameterfvNV(GL_COMBINER0_NV,GL_CONSTANT_COLOR0_NV,c0);
glCombinerInputNV(GL_COMBINER0_NV,GL_RGB,GL_VARIABLE_A_NV,GL_TEXTURE0_ARB,GL_UNSIGNED_IDENTITY_NV,GL_RGB);
glCombinerInputNV(GL_COMBINER0_NV,GL_ALPHA,GL_VARIABLE_A_NV,GL_TEXTURE0_ARB,GL_UNSIGNED_IDENTITY_NV,GL_ALPHA);
glCombinerInputNV(GL_COMBINER0_NV,GL_RGB,GL_VARIABLE_B_NV,GL_CONSTANT_COLOR0_NV,GL_UNSIGNED_INVERT_NV,GL_RGB);
glCombinerInputNV(GL_COMBINER0_NV,GL_ALPHA,GL_VARIABLE_B_NV,GL_CONSTANT_COLOR0_NV,GL_UNSIGNED_INVERT_NV,GL_ALPHA);
glCombinerInputNV(GL_COMBINER0_NV,GL_RGB,GL_VARIABLE_C_NV,GL_ZERO,GL_SIGNED_IDENTITY_NV,GL_RGB);
glCombinerInputNV(GL_COMBINER0_NV,GL_ALPHA,GL_VARIABLE_C_NV,GL_ZERO,GL_SIGNED_IDENTITY_NV,GL_ALPHA);
glCombinerInputNV(GL_COMBINER0_NV,GL_RGB,GL_VARIABLE_D_NV,GL_ZERO,GL_SIGNED_IDENTITY_NV,GL_RGB);
glCombinerInputNV(GL_COMBINER0_NV,GL_ALPHA,GL_VARIABLE_D_NV,GL_ZERO,GL_SIGNED_IDENTITY_NV,GL_ALPHA);
glCombinerOutputNV(GL_COMBINER0_NV,GL_RGB,GL_DISCARD_NV,GL_DISCARD_NV,GL_SPARE0_NV,GL_NONE,GL_NONE,GL_FALSE,GL_FALSE,GL_FALSE);
glCombinerOutputNV(GL_COMBINER0_NV,GL_ALPHA,GL_DISCARD_NV,GL_DISCARD_NV,GL_SPARE0_NV,GL_NONE,GL_NONE,GL_FALSE,GL_FALSE,GL_FALSE);
glEnable( GL_REGISTER_COMBINERS_NV );
with this configuration, the texture appears completely normal.
- why does the constant color not have an effect? no matter what values i choose, i always see the texture as normal
- if i change the line:
glCombinerInputNV(GL_COMBINER0_NV,GL_RGB,GL_VARIABLE_B_NV,GL_CONSTANT_COLOR0_NV,GL_UNSIGNED_INVERT_NV,GL_RGB);
to
glCombinerInputNV(GL_COMBINER0_NV,GL_RGB,GL_VARIABLE_B_NV,GL_CONSTANT_COLOR0_NV,GL_SIGNED_IDENTITY_NV,GL_RGB);
the texture disappears!!! what is wrong!!
i have been through the specs dozens of times and can’t find any state problems, errors, or “beware this combination of parameters” which might lead to these results. gluErrorString yields no errors at any point.
help help help!!! all i’m trying to do is learn to use register combiners!