What I really mean is with Geforce3 level hardware, how to render environment map bump map refraction?

I know with texture shader we can easily do bump map reflection(GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV), but how can we do refractions? Seems like these are some “texture addressing in fragment level” so I think it can’t be done through vertex shader right?

So I figure those matrices should be the only difference from bump relfection,right? Just a set of matrix multiply so that normals are transform to refraction vectors but I’m just curious to know about it

I used “dot product cubemap”, not “dot product reflect cubemap”.

That whole mess of matrix concatenation is to take a per-fragment tangent-space normal, transform it into object space, then eye space, then “radial eye space” (where the eye vector is a standard basis vector), apply a non-uniform scale in the plane orthogonal to the eye vector, transform back into eye space, then on to cubemap space.

Thanks for reply, cass. But the main point is I just didn’t know how the
“then “radial eye space” (where the eye vector is a standard basis vector), apply a non-uniform scale in the plane orthogonal to the eye vector, transform back into eye space”,
which is exactly R^t * N * R, transforms the eye-space normal to the refraction vector, (which is yet to transfom into cubemap space and look up into the cube map)

I think there should be some math about that right? Is there a explaination?

Thanks

[This message has been edited by tomb4 (edited 10-11-2003).]