m_graphics->SetUniform(id, "u_NormalMatrix", 1, false, glm::inverse(glm::transpose(glm::mat3(glm::vec3(viewMatrix), g lm::vec3(viewMatrix), glm::vec3(viewMatrix)))));
and the light is
glm::vec4 lightPosViewSpace = glm::inverse(g->GetViewMatrix()) * glm::vec4(-50.0f, 150.0f, 30.0f, 1.0f); g->SetUniform(id, "Light.Position", lightPosViewSpace);
Perhaps I should multiply the position in my frag shader by model view matrix such as:
vec3 s = normalize(vec3(Light.Position) - (u_ModelViewMatrix * vec4(pos, 1.0)));
Because I'm just passing it through my geom buffer shader unchanged:
Position = in_Position;
EDIT: The shading still changes when the camera moves. If I turn around from origin in the scene and start tilting down, the floor and everything just turns black. And actually i think putting the inverse after the transpose didn't actually change a thing.