My (ADS) shader doesn't render the light direction correctly
It seems to me, to be that your different positions and normals are not in the same space. Having them in the same space is important because else it might think the normal is pointing left while it should point to the right.

If you don't know what I mean with space in this context it's basically a coordinate system. Think about a grid, grid A. On grid A you have a point. Then you have another grid, grid B. You place grid A on grid B. If you move grid A around, the point on grid A does not move relative to grid A. It does however move relative to grid B, so they are different spaces. Hope that clarifies it for you, if not I am so sorry.

You have a few coordinate spaces:


Local: This is the vertex locations relative to the model position.
World: This is the location relative to the actual world origin.
View: This is the location relative to the camera.


You have the light position, vertex position and normal:


Light position is in world space.
Normal is in world space, since you multiplied it with a model matrix making it go from local to world.
Vertex position is in view space, since you put it to world space with the model matrix and then to view space with the view matrix.


Do you see that you have one of the three variables in a different space?
I have a strong feeling this is the problem and if you do not multiply the vertex position with the view matrix, in the vertex shader, this should be fixed.

I hope that this helps you and good luck!