Hi,
I think basic N.L bumpmapping with fragment shaders is done like this:
normal map in GL_TEXTURE0_ARB and
light vector in tangent space in GL_TEXTURE1_ARB
glSampleMapATI(GL_REG_0_ATI, GL_TEXTURE0_ARB, GL_SWIZZLE_STR_ATI);
glSampleMapATI(GL_REG_1_ATI, GL_TEXTURE1_ARB, GL_SWIZZLE_STR_ATI);
glColorFragmentOp2ATI(GL_DOT3_ATI,
GL_REG_0_ATI, GL_NONE, GL_SATURATE_BIT_ATI,
GL_REG_0_ATI, GL_NONE, GL_BIAS_BIT_ATI|GL_2X_BIT_ATI,
GL_REG_1_ATI, GL_NONE, GL_BIAS_BIT_ATI|GL_2X_BIT_ATI);
Correct me if this is not right.
But how does the vertex shader part of this look like?
I think basic N.L bumpmapping with fragment shaders is done like this:
normal map in GL_TEXTURE0_ARB and
light vector in tangent space in GL_TEXTURE1_ARB
glSampleMapATI(GL_REG_0_ATI, GL_TEXTURE0_ARB, GL_SWIZZLE_STR_ATI);
glSampleMapATI(GL_REG_1_ATI, GL_TEXTURE1_ARB, GL_SWIZZLE_STR_ATI);
glColorFragmentOp2ATI(GL_DOT3_ATI,
GL_REG_0_ATI, GL_NONE, GL_SATURATE_BIT_ATI,
GL_REG_0_ATI, GL_NONE, GL_BIAS_BIT_ATI|GL_2X_BIT_ATI,
GL_REG_1_ATI, GL_NONE, GL_BIAS_BIT_ATI|GL_2X_BIT_ATI);
Correct me if this is not right.
But how does the vertex shader part of this look like?