I find it hard to believe that I'm the only one getting this, but I've tested it on over 5 systems with nearly any form of shader and level set up, the results are always the same...

When loading a level, if there is a shader, whether loaded via effect_load or added inline into the script via "effect" in the material, the shader will NOT receive any form of tangents from the engine if it is visible immediately upon level load.

For example, I have a simple sphere with a normalmapping shader applied. If I place a camera in the level so that the instant the level is loaded, this object is visible- then it doesn't get anything in the tangent texcoord, (it just gets float3(0,0,0) ). However, if I place the camera in a fasion that the object is not visible upon load, and wait a moment after level load before rotating the camera to see the object- everything works fine. To make matters more confusing, if I place a sleep instruction at the start of the object action to wait before loading the shader- it does nothing for the situation. It seems if the shader is seen in the same frame it is initialized, it does not receive tangents.

I've run this on Win2000, WinXP Home, and WinXP Pro, all the same results.

-Rhuarc


I no longer post on these forums, keep in touch with me via:
Linkedin.com
My MSDN blog