Best use of combiners

Hi!

I’m realy new in the combiners world and not very old in the OpenGL world, so sorry if my question seems to be weird.

I’ve use the NV_register_combiners to render per pixel light, however the doc i find are for the old version with only one combiner unit and two textures units accessible.

What i want to do, is to use the full power of the video card. I heard that 8 combiners could be avaible, so i’d like to use the maximum number of combiners (for light, fog rendering, …) in order to reduce the number of pass.

Could you tell me if that approach is good? And how many textures i could have access through these combiners?

Two last questions and i stop

Is there an extention like NV_register_combiners that was support by all video card?

And what is exactly NV_register_combiners2?

Thanks a lot in advance
snorky

Originally posted by snorky:
Could you tell me if that approach is good? And how many textures i could have access through these combiners?

I guess it’s not. Even on NV30 combiners can access only four textures (unless you use some weird FP to blend the lookups but I’m not sure it’s possible, I shall check).
Combiners are probably out of date. I would mind in dropping them - fragment programs looks more powerful and easy to manage to me.

Originally posted by snorky:
Is there an extention like NV_register_combiners that was support by all video card?

While they are on every 3d card (DX7 compatible), they are exposed only on GeForces (I’ve heard ATi had a driver which supported them some time ago, but this is false right now so I figure out it was just a rumor). This means there’s no point in supporting NV_rc for getting back-compatibility, another point which makes fragment programs even better.

Originally posted by snorky:
And what is exactly NV_register_combiners2?

If I am right (take it with some salt) they allow two per-stage constants and two global constants.

True that fragment seems to be better, however, i want to code something that could run not only on new card. I’ve a Geforce4Ti (not so old), and it didn’t support the fragment, and i think that many people are in my situation having a card between Geforce2MX and Geforce4, and only few have a GeforceFX or an ATI 9500. That’s why i think it’s worth better code with NV_rc.

Thanks for your help