I don’t believe you can get the result you want except by using the NV_register_combiners extension. The EXT_texture_env_combine extension doesn’t allow you to specify arguments like Arg0 + Arg1 * Arg2, so that is out of the question and I don’t know of any other texture combine methods that would be available.
Janne
I can’t tell, from what you describe, exactly what you want to do, but it sounds like:
PrimaryColor * Tex0RGB + Tex1RGB * Tex0Alpha
If this is what you want to do, unfortunately, EXT_texture_env_combine is just not flexible enough.
NV_texture_env_combine4 is the easiest way to achieve this. You can set up the first stage to compute the exact equation above, and the second stage would just pass through the previous result (1Previous + 00).
This would run in a single pass on all TNT/TNT2, GeForce, and Quadro hardware.
Yep, if you have an alpha buffer it can be done in 2 passes. By using a destination alpha blend when drawing the environment map.
Or you can first draw the environment map, and then draw the base texture using an inverted source alpha blend. This way doesn’t require an alpha buffer.