namespace Msp {
namespace GL {
-Camera::Camera():
- fov(Geometry::Angle<float>::from_turns(0.125)),
- height(0),
- aspect(4.0/3.0),
- clip_near(0.1),
- clip_far(10),
- frustum_x(0),
- frustum_y(0),
- position(0, 0, 0),
- look_dir(0, 0, -1),
- up_dir(0, 1, 0)
+Camera::Camera()
{
update_projection_matrix();
update_object_matrix();
proj_matrix = Matrix::rotation(rotate, Vector3(0, 0, 1))*proj_matrix;
shdata.uniform("clip_eye_matrix", proj_matrix);
+ shdata.uniform("eye_clip_matrix", invert(proj_matrix));
}
void Camera::update_object_matrix()
matrix = Matrix::from_columns(columns);
view_matrix = invert(matrix);
+ shdata.uniform("world_eye_matrix", matrix);
shdata.uniform("eye_world_matrix", view_matrix);
}