The value of GL_MAX_TEXTURE_UNITS is 4 for GeForce FX and GeForce 6 Series GPUs. Why is that, since those GPUs have 16 texture units?
GL_MAX_TEXTURE_UNITS refers to the number of conventional texture units as designed by the old GL_ARB_multitexture extension for which texture coordinate sets and texture image units have to correspond. Now, it doesn’t make sense to carry on with this design choice when, as it is the case with the GeForce FX and GeForce 6800 families, the number of texture coordinate sets and the number of texture image units differs, both of them are more than 4, and you can arbitrarily use any texture coordinate to sample any texture image. So, we have intentionally chosen not to further aggrandize conventional texturing with more texture units and have programmers use the GL_ARB_fragment_program and GL_NV_fragment_program extensions when they need to work with more than 4 texture units. Fragment programs are far more general, flexible, efficient, and forward-looking.
Related Questions
- Do the GeForce 8800 series GPUs include the same video processing capabilities as the new GeForce 8400, GeForce 8500 and GeForce 8600 GPUs?
- Do the GeForce 8800 series GPUs include the same video processing capabilities as the new GeForce 8500 and GeForce 8600 GPUs?
- Have you changed the way you approach antialiasing with GeForce 8 Series GPUs?