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).]