dual-parabploid environment mapping problem

Hi there,

right now I’m trying to implement the dual-parabploid environment mapping [1, 2] by the the fixed-function pipelines.
I’m using the following code to do the 2-pass method (alpha test) but somehow it doesn’t work well…

The problem which I have is this:
http://xslgl.jugem.cc/?image=5644

glEnable(GL_ALPHA_TEST);
glAlphaFunc(GL_GREATER, 0.5);
 
glMatrixMode(GL_TEXTURE);
glLoadIdentity();
glLoadMatrixf(A);
glMultMatrixf(P);
glMultMatrixf(Sfront);
glMultMatrixf(Mlinv);
 	
glEnable(GL_TEXTURE_GEN_S);
glEnable(GL_TEXTURE_GEN_T);
glEnable(GL_TEXTURE_GEN_R);	
glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_REFLECTION_MAP_ARB);
glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_REFLECTION_MAP_ARB);
glTexGeni(GL_R, GL_TEXTURE_GEN_MODE, GL_REFLECTION_MAP_ARB);
 
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, g_Texture[PRBLD_FACE]);
 
glMatrixMode(GL_MODELVIEW);	
glColor3f(1.0, 1.0, 1.0);
glutSolidTeapot(1.0);
 
glMatrixMode(GL_TEXTURE);
glLoadIdentity();
glLoadMatrixf(A);
glMultMatrixf(P);
glMultMatrixf(Sback);
glMultMatrixf(Mlinv);
 	
glEnable(GL_TEXTURE_GEN_S);
glEnable(GL_TEXTURE_GEN_T);
glEnable(GL_TEXTURE_GEN_R);	
glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_REFLECTION_MAP_ARB);
glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_REFLECTION_MAP_ARB);
glTexGeni(GL_R, GL_TEXTURE_GEN_MODE, GL_REFLECTION_MAP_ARB);
 
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, g_Texture[PRBLD_BACK]);

glMatrixMode(GL_MODELVIEW);	
glColor3f(1.0, 1.0, 1.0);
glutSolidTeapot(1.0);

I think the matrices, A, P, Sfront, Sback and Mlinv (invert matrix of the modelview) is correct.
So I guess the cause of the problem is the paraboloid maps,
but the problem is that I don’t know what the problem is… :frowning:

Give me a hint, please?
Thanks.

References
[1] http://www.nada.kth.se/~gustavt/dpm/
[2] http://www.opengl.org/resources/tutorials/sig99/advanced99/notes/node184.html