diff options
author | Lukas Stockner <lukas.stockner@freenet.de> | 2015-11-22 00:14:13 +0300 |
---|---|---|
committer | Lukas Stockner <lukas.stockner@freenet.de> | 2015-11-22 02:58:40 +0300 |
commit | 5c5df9dc182e4e5a3c6ced7f763a82e8668f8d42 (patch) | |
tree | 1338979f8b853df9c731a877a99d7b2972da89db /intern/cycles/render/camera.cpp | |
parent | f547bf2f1013a86dc5a6646707256a174c2a1b47 (diff) |
Cycles: Save one transform inversion in the camera sync
Summary: By calculating the Camera-to-Screen-Matrix first, one inversion can be saved in the Camera sync.
It won't really improve speed and/or precision, it's mainly a small cleanup.
Reviewers: sergey, dingto
Subscribers:
Diffstat (limited to 'intern/cycles/render/camera.cpp')
-rw-r--r-- | intern/cycles/render/camera.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/intern/cycles/render/camera.cpp b/intern/cycles/render/camera.cpp index c59971996bc..33a5c004033 100644 --- a/intern/cycles/render/camera.cpp +++ b/intern/cycles/render/camera.cpp @@ -150,7 +150,6 @@ void Camera::update() Transform bordertofull = transform_inverse(fulltoborder); /* ndc to raster */ - Transform screentocamera; Transform ndctoraster = transform_scale(width, height, 1.0f) * bordertofull; /* raster to screen */ @@ -160,14 +159,15 @@ void Camera::update() Transform rastertoscreen = transform_inverse(screentoraster); /* screen to camera */ + Transform cameratoscreen; if(type == CAMERA_PERSPECTIVE) - screentocamera = transform_inverse(transform_perspective(fov, nearclip, farclip)); + cameratoscreen = transform_perspective(fov, nearclip, farclip); else if(type == CAMERA_ORTHOGRAPHIC) - screentocamera = transform_inverse(transform_orthographic(nearclip, farclip)); + cameratoscreen = transform_orthographic(nearclip, farclip); else - screentocamera = transform_identity(); + cameratoscreen = transform_identity(); - Transform cameratoscreen = transform_inverse(screentocamera); + Transform screentocamera = transform_inverse(cameratoscreen); rastertocamera = screentocamera * rastertoscreen; cameratoraster = screentoraster * cameratoscreen; |