Well, first of all, get a GL specification and search for the word “multitexture”. You will find a drawing that will help you.
Stop thinking at different pipelines at the same time. As far as I know, having different pipes increases just speed so there’s no such point in considering how many pipes you have while thinking at functionalities. There’s very good chance every pipe will process a different pixel (see below).
Question 1: … Does this mean that it can do 4 sets of multitexturing per clock cycle if the the multitexturing only uses 2 textures?
–> Yes, this is correct.
However, you have to take in consideration the pipes runs in parallel and gives only speed ups. So, you can’t have [tex0, tex1] on pipe0 and [tex2, tex3] on pipe1. All the pipes share the same state so all the pipes got the same textures.
Question 2: What happens when I want to multitexture 3 textures? …
–> No, as far as I know. This would mean there’s some sort of syncronizing the pipes, and this would be quite hard to implement. You can do it something similar however, by using register combiners (provided you want to stick with fixed function chips) too bad they are not avaiable on TNTs.
3: Don’t actually understand where’s the point, however, here’s my explaining on how this work.
In plain GL you have GL_MAX_TEXTURE_UNITS_ARB textures per pixels avaiable at the same time. For every texture, you can define related parameters such as “texcoords” and “texenv” (how texture is blended with other textures active at the moment).
This means that a TNT can do 1 single-texture pixel per clock or 1 dual-textured pixels per clock.
A Geforce2 can do 4 single-texture pixel per clock or 4 dual-textured pixels per clock.
A GeForce3/4 can do 4 single-texture pixel per clock or 4 quad-textured pixels per clock.
I also remember of some video cards which were able to “distribute” the work so you cand do strange things however, it would be confusing to point this out…
Are you sure you don’t want to take a look at new technologies like fragment programs and programmable pipelines? Do you need something other?
EDIT: Added “(see below)”.
EDIT: Added little note about rc on tnt.
[This message has been edited by Obli (edited 05-03-2003).]
[This message has been edited by Obli (edited 05-03-2003).]