opengl – can I use smooth normal and normal mapping together?

I'm trying to use normal and normal normal mapping together. And I did a test.
In this test, I draw a cube and a man.

They use the same vertex shader and fragment.

I charge them even md5loader because after I want to use a skeletal animation.

They have the same source of illumination. And only different positions.

cube x = 15 y = 0 z = 0
man x = 0 y = 0 z = 0

I'm not sure I did it right?

Plus, I just "normalize (vertex)" for normal playback instead of using "normalFlat", is not it? :RE

And my vertex shader:

in the vertex vec3;
in vec2 UV;
in vec3 normalFlat; // I will not use it is normal
out vec3 tangentSurface2light;
out vec3 tangentSurface2view;

void main ()


vec3 lightPos2 = vec3 (ModelViewMatrix * vec4 (lightPos, 1.0));

vec3 tangent;
vec3 v1 = cross (normalize (vertex), vec3 (0.0,0.0,1.0));
vec3 v2 = cross (normalize (vertex), vec3 (0.0,;

if (length (v1)> length (v2))
tangent = v1;
tangent = v2;

vec3 n = normalize (NormalMatrix * normalize (vertex));
vec3 t = normalize (NormalMatrix * tangent);
vec3 b = cross (n, t);
mat3 mat = mat3 (t.x, b.x, n.x, t.y, b.y, n.y, t.z, b.z, n.z);

vec3 vector = normalize (lightPos2-vertexPositionWorld);
tangentSurface2light = mat * vector;

vector = normalize (-vertexPositionWorld);
tangentSurface2view = mat * vector;


enter the description of the image here