wrong texture matrix or bug in normal map plugin?

Hello everybody!
I’m trying to bump map simple quad(draw it using tris_strip) using ARB_tex_env_dot3 and vertex program.
I calculate lights position in object space and then calculate light vector (lights position in object space – vertex.position), normalize vector and transform it in tangent space. For my quad facing viewer texture matrix looks like this:
T 1,0,0
B 0,1,0
N 0,0,1
I store this vector in result.color and store vertex.texcoord[0] in result.texcoord[0].
Well, problem is that when I try to use normal map generated with Nvidias Photoshop plugin I get incorect results when I try to rotate quad around x-axis. It seems that I get correct results when I invert green chanel in normal map or if I use (0, -1, 0) for binormal.
I think that texture matrix is correct, but in SimpleDot3 demo on ATIs website they use 0, -1, 0 for binormal and they use only one quad just like me. I even tried using NVMeshMender for generating tangent and binormal and I get 1,0,0 and 0,1,0.
So question is is this texture matrix correct for this quad:
V0 –0.5, -0.5, 0.0
V1 0.5, -0.5, 0.0
V2 –0.5, 0.5, 0.0
V3 0.5, 0.5, 0.0
// texcoords
VT0 0.0, 0.0
VT1 1.0, 0.0
VT2 0.0, 1.0
VT3 1.0, 1.0
VN 0.0, 0.0, 1.0
or there is bug in normal map plugin, or something else?

The choice of a basis for tangent space is somewhat arbitrary, so it is just a matter of keeping your code and art in synch.

It is reasonable to have the tangent vector point in the direction of s, -s, t, or -t. The only thing that is important is to stay self consistent.


…like always using blue for ‘up’.