In a program using multitexture and vertex array , how to enable blending in the 2nd texture layer, while disable it in the 1st layer?
if you mean opengl blending, you cant, because there are no 2 layers, if you mean texture blending, just set the texenv to GL_BLEND.
Opengl blending combines the pixels in the color buffer with pixels to be written to color buffer in a certain way (this depends on glBlendFunc()) and writes the result to the color buffer. Now the idea of multitexturing is to apply multiply textures with one pass, so you dont need to use blending to apply >1 textures to a primitive. While this offers a speedup compared to multipass textturing its not very configurable: blending is one example.
On a Geforce cards there is a register combiners extention which provide a powerful way to control how and what is done during texturing.
Conclusion: If you want to do what you described you have to use multipass texturing.
I saw in the opengl specificaion, the multitexture pipeline is
texture 0 ->|->|
texture 1 ---->|->color buff
but it seems to me that it is
texture 0|->|->color buff
I just can’t figure out the right way
Actually, the multitexture pipeline is:
color buffer ->[ blend ]
fragment color -> texture0 -> texture1 ->[ blend ] -> color buffer
[This message has been edited by Serge K (edited 01-09-2001).]
Do I have to use multipass if I want to disable textre0 and enable texture1?