I have a problem with lighting calculations.I am rotating the camera around a cube which was supposed to be illuminated by the light but the resulting lighting is very weird.Check out the image above, fragment shader and vertex shader below.//Vertex shader#version 330 corelayout (location = 0) in vec3 pos;layout (location = 1) in vec3 norm;uniform mat4 model;uniform mat4 view;uniform mat4 projection;uniform vec3 lightPos;out vec3 ourNormal;out vec3 fragPos;out vec3 ourLightPos;void main(){    gl_Position = projection*view*model*vec4(pos,1.0);    fragPos = vec3(view * model * vec4(pos, 1.0f));    ourNormal = mat3(transpose(inverse(view * model))) * norm;    ourLightPos = vec3(view * vec4(lightPos, 1.0));}//fragment shader#version 330 core//Output variablesout vec4 finalColor;//Input variablesin vec3 ourNormal;in vec3 fragPos;in vec3 ourLightPos;//Uniform variablesstruct Material{    vec3 ambient;    vec3 diffuse;    vec3 specular;    float shininess;};struct Light{    vec3 ambient;    vec3 diffuse;    vec3 specular;};uniform Light light;uniform Material material;uniform vec3 viewPos;void main(){    //Ambient    vec3 ambient = light.ambient*material.ambient;    //Diffuse    vec3 normal = normalize(ourNormal);    vec3 lightDir = normalize(ourLightPos - fragPos);    float diffuseStrength = max(dot(lightDir,normal),0.0);    vec3 diffuse = light.diffuse*(diffuseStrength*material.diffuse);    //Specular    vec3 viewDir = normalize(viewPos - fragPos);    vec3 reflectDir = reflect(-lightDir,normal);    float specularStrength =         pow(max(dot(viewDir,reflectDir),0.0),material.shininess);    vec3 specular = light.specular * (specularStrength*material.specular);    //Last step    vec3 result = (ambient+diffuse+specular);    finalColor = vec4(result,1.0);}As you can see, I transformed all the positions, normals and light source position in view space, i.e camera space, but I don't know why it's not working.
Why does my lighting look incorrect?
opengl;shader;lighting