Register Combiners and Vertex Programs

This is just a quick sanity check.

Register Combiners are configurable but not programmable. So I guess they are a precursor to vertex programs which are programmable. So if a graphics card supports vertex programs, is it better to write a vertex program in favor of using register combiners?

Thanks for all your help.

Register combiners works on texture, so they are a precursor to fragment programs.

Also, register combiners are per-fragment, while vertex programs are per-vertex.

I also disagree with your distinction between configurable and programmable. Register combiners are programmable in the same way that vertex programs are. There is a finite number of configurations of the hardware that is controlled by a particular binary pattern in both cases. Vertex programs just have a much larger number of combinations for more flexible hardware.

Register combiners are a kind of alternative to texture stages and color sum stage. You can consider them as beeing another fixed function pipeline that can be “setup” and do the tricks you want.

vertex programs and fragment programs are much more complex. The hardware is considered to be flexible enough to be called non-fixed pipeline. Both of them together give you total programmability (except the very final stage where the algorithm reside for rasterization of primitives). Also they are lacking in some features (the current ARB, EXT, NV).