AFAIK, binormal is calculated by cross(normal, tangent)
not by cross( tangent, normal)
This produces almost same image on TestNormalmap.
But for my model, it produces slightly different image and cross(normal, tangent) seems to be right.(also mathmatically)
Index: src/jmetest/data/images/normalmap.vert
===================================================================
--- src/jmetest/data/images/normalmap.vert (revision 4081)
+++ src/jmetest/data/images/normalmap.vert (working copy)
@@ -20,7 +20,7 @@
/* Calculate tangent info - stored in colorbuffer */
vec3 normal = gl_NormalMatrix * gl_Normal;
vec3 tangent = gl_NormalMatrix * (gl_Color.xyz*2.0-1.0);
- vec3 binormal = cross( tangent, normal );
+ vec3 binormal = cross( normal, tangent );
/* Calculate tangent info - stored in attributes */
// vec3 normal = gl_NormalMatrix * gl_Normal;