   Some small questions about fixed pipeline and shaders
  So I posted a pretty general post earlier about the fixed function pipeline.  I was pretty confused in general how to specify texture functions in such.  I got great answers but now after delving into it deeper I have a couple specific questions.  I figured it'd be better just to start a new post.First of all, in the fixed function pipeline, with glTexEnv I can control the texture functions.  Sure, I've learned how to specify args 0, 1, and 2 and control the ONE texture function (MODULATE, INTERPOLATE, etc) that processes it.  However, is there a way to define multiple texture function in one pass in the FFP?  In DirectX, I could specify a texture function, source, and args per texture unit.  After some testing, it doesn't seem like I'm able to do it in OpenGL.  When specifying args 1 and 2 they have properties that bind to texture units 1 and 2 (like which texture is bound to which unit).I know I can do a glTexEnv(GL_TEXTURE_SOMETHING, GL_TEXTURE_ENV_MODE, GL_MODULATE) per texture unit.  But can I do a glTexEnv(GL_TEXTURE_SOMETHING, GL_TEXTURE_ENV_MODE, GL_COMBINE) ::then specify ARGn and OPERANDn:: for advanced operations, like dot3?I'm trying to do normal mapping, where I need to dot3 a constant vector against the current texture and then multiply it by another texture.  If someone could guide in the direction of how to do this without shaders, that would be great!Another quick question is, when using shaders, how do I switch back to the fixed function pipeline after switching to a shader?  I triedglUseProgramObjectARB(0);    but that didn't work.  Everything after rendering that object didn't show up.Thanks for the help edit:  About the advanced fixed function pipeline, I looked all through the OpenGL specs and found some great information, but couldn't find much that told me how to use GL_COMBINE and specifiy multiple texture functions (like a dot3 and then a modulate).[edited by - okonomiyaki on May 30, 2004 12:18:26 AM]