Multiplying tangent and bitangent by scale matrix
In my dot3 rendering, I noticed that on larger objects (such as a floor in a room), the radiation centre of my light seems to be offset from the lights position. The offset distance seems to increase the farther the light position moves from the object centre.
I did a quick test, and it seems to me, that objects with an XYZ scale of 1 don't have this problem, but scaled objects do (the larger the object, the worse the offset issue). I'm thinking that this is because when I scale an object, the verticies are scaled, but the tangent and bitangent vectors aren't. This would mean that the light on a 20x20x20 cube, is calculated as if the cube is still 1x1x1.
First of all, is what I think is the problem, actually the problem? And if so, how would you scale tangent and bitangent vectors?