2 Texture Units Puzzle

Hi there,

I have a base texture (‘B’), two alpha textures (‘A’), two detail textures (‘D’) and a light map texture (‘L’). The base texture covers 100% of the area, the two detail textures use the alpha map textures as masks.

I’d like to render this in as few passes as possible since there are a lot of triangles.

If the GPU has 6 texture units, it’s straightforward because I can do B,A,D,A,D,L using various combines and this works fine.

If there are 4 texture units, I can do B,A,D,L on the first pass and then A,D,L on the second pass. This also works fine. :slight_smile:

This beings me neatly onto my question, is it possible with 2 texture units? Can you do two alpha-mapped detail textures on top of a base texture with a lightmap?

I have tried glBlend(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA), this works:

B
AD
AD

However, I’m not having much luck with the lightmap.

I tried glBlend(GL_ZERO,GL_SRC_COLOR) and this applies the lightmap nicely, but unfortunately it darkens the fog.

Is there a solution to this puzzle that doesn’t involve shaders?

I’m sure there’s a really simply answer, it just evades me at the moment!

Many thanks,
Richard.