Originally posted by Korval: The same thing might happen on Modelveiw matrices too.
I use the same code for texture projection and as I do for the camera. This hasn’t been a problem. I actually tried projecting a texture using the exact same matrices that I use for the camera and it still runs slow.
I hope I’m mistaken and that the GeForce1 DDR really can do general 4x4 matrix multiplications on texture coords. Maybe Cass or mcraighead can confirm this ?
I just ran that projective texture demo thingy on the NVEffectsBrowser and I was getting almost 1200fps. But when i started to move the projector around it dropped to about 12 to 30fps. Im using a GeForce DDR 32mb. Why does the framerate drop so slow when the projector is moved around?
GeForce 256 T&L has a hardware issue with projective texture matrices that forces a software fallback. As mentioned in the vertex array range whitepaper, any software fallback is particularly painful when using VAR because the driver has to read from uncached memory.
There is a hardware accelerated application work-around if you’re using object linear or eye linear texgen. You can simply bake the texture matrix directly into the texgen planes. This is actually more efficient as well.
There is a related issue that comes up when using a non-identity texture matrix with cube map texture coordinates (s,t,r) on GeForce 256. See my post on the “Cube mapping disabling VAR…” thread in this forum for details.
This issue exists ONLY for GeForce 256 (DDR & SDR) and Quadro hardware. No other GeForce class hardware is affected. Specifically, no variety of GeForce2, GeForce3, Quadro2 or Quadro DCC is affected.
Thanks, Cass. Moving everthing to the texgen planes and using an identity texture matrix worked. Using VAR is a great way to find out if you’re running Hw accelerated or not.
If it’s not a secret, I would like to know what specifically makes the driver choose the software path.
Paul
[This message has been edited by PH (edited 06-15-2001).]
As you’ve already hinted, the issue is with non-zero entries in the 3rd row of the texture matrix. There are really only 3 rows in the texture matrix for GeForce{1|2} hardware since it doesn’t support 3D textures. For projective texturing the rows are (s,t,q) and for cube mapping they’re (s,t,r), but it’s always the 3rd one.
[q]There is a hardware accelerated application work-around if you’re using object linear or eye linear texgen. You can simply bake the texture matrix directly into the texgen planes. This is actually more efficient as well.[/q]
Probably it is possible to do such workaround on driver level? It will be fixed in next detonators?