bumpmapping in a single pass

Is there any way you guys can think of to bumpmap in a single pass using only two texture units? Any kind of bumpmapping will do (though dot3 doesn’t seem very feasible at all). The architecture I’m working with will not permit me to call draw functions from the same place as I set up texture environment states and texture bindings (don’t ask). I’ve been goofing around with NV register combiners and the tex env combine, but invariably I keep coming back to the fact that I need two texture units to determine the bumpmap (the normal map and normalization cubemap for dot3 and the original and inverted bumpmaps for emboss) and a third to actually apply the base texture. If you can think of anything clever that wouuld do this, I’d much appreciate it. Thanks.

Johnny

Oh – I should add that I’m using a GeForce2, in case you have any brilliant hardware-related hacks.

You can do it using multitexturing and dot3 extensions:

GL_ARB_multitexture
GL_ARB_texture_env_combine
GL_ARB_texture_env_dot3

check out this thread: http://www.opengl.org/discussion_boards/ubb/Forum3/HTML/002870.html

…just edited to see that you have a gf2…not sure about the hardware imp of the above extensions

just checked www.delphi3d.net, they have a good list of extension-hardware relationships.
you should be good to use the above extensions with a gf2
J

[This message has been edited by Jeeeez (edited 08-02-2002).]

[This message has been edited by Jeeeez (edited 08-02-2002).]

Try dot3 without the normalization cubemapand check if it’s good enough for your needs.

You’ll need to send the light vectors with glColor (or array). Only minor math adjustments are needed but they’re easy to figure out (one of the dot3 ati demos uses this).