You can calculate normals, it’s the normalized cross product of two edge vectors of the triangle. Normals will be transformed with the object.
The lighting issue is a classic one due to the combined nature of the model & view matrix. The application must position the light source at the right TIME in the transformation sequence.
So for a light in ‘world’ space (not eye or object) you must:
- position the eye
- position the light
- position the object
- draw the object with normals
If you do 2) before 1) or after 3) the light will move with the eye or with the object respectively.