Added type parameter for ShaderProgram3D class to specify a camera type