I would create a 3d rappresentation in an enginiering c++ project.
I use opengl and the meshes should be illuminated not with a complete light system(is not a game) , but i think with a simplified system , in that the mesh is alwais completely illuminated, and appears in 3d.
I think to use a point light placed in the camera position , that is a parameter that change every frame, instead the lightcolor and the materials change at the initialization of the shader , can be a solution?
it really depend on what you want to do.
If you want to use standard light system with a light in the camera position, then using the standard light system with a light in the camera position is the correct solution.
Witch version of openGL are you using? The standard illumination system has been removed in oGl3.1, and you can implement a lot better illumination with shaders.
CATIA (is not a game) use different pass to enhance the edges of the shape, manage transparency and highlight selected object.
“If you don’t know where you are going, any road will get you there.” The Cheshire cat said.