The tangent vectors will be filled at render time, if two preconditions are met:
- the shader has an attribute with that name
- the mesh has tangents generated
...that's all. If one preconditions isn't met, the tangents will remain (0,0,0), which results in a black rendering when using normal mapping. However, looking at the code and at your log output, i'm not sure what i'm seeing there...actually, the sequence should be something like:
Compiled XXX VBO!
Shader program compiled and linked fine!
Tangent handle not found (tangents needed: false)!
Shader compiled!
In your log, all i can find is
Compiled XXX VBO!
Shader compiled!
...which makes me think that you are not using the GLSLShader class at all but the old wiki example that does everything by hand!? If that's the case, it would explain the results. Try to use GLSLShader instead...