From 4f347f39b273d6552b1edae38b4439d3b5771084 Mon Sep 17 00:00:00 2001 From: Nghia Truong Date: Sun, 5 Jul 2020 01:57:38 -0600 Subject: [PATCH 1/2] Update ArcBallCamera.h Change the frustum clip distance. The current 'far' clip is too small, thus some large objects can be cut off. --- src/arcball/ArcBallCamera.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/arcball/ArcBallCamera.h b/src/arcball/ArcBallCamera.h index 0699facfe..c5268daf3 100644 --- a/src/arcball/ArcBallCamera.h +++ b/src/arcball/ArcBallCamera.h @@ -54,7 +54,7 @@ class ArcBallCamera: public ArcBall { (*(_camera = new SceneGraph::Camera3D{*cameraObject})) .setAspectRatioPolicy(SceneGraph::AspectRatioPolicy::Extend) .setProjectionMatrix(Matrix4::perspectiveProjection( - fov, Vector2{windowSize}.aspectRatio(), 0.01f, 100.0f)) + fov, Vector2{windowSize}.aspectRatio(), 0.01f, 1000.0f)) .setViewport(viewportSize); /* Save the abstract transformation interface and initialize the From bdf51f75113a4d5004c0f108c71b46526eca680e Mon Sep 17 00:00:00 2001 From: Nghia Truong Date: Sun, 5 Jul 2020 20:03:59 -0600 Subject: [PATCH 2/2] Update ArcBallCamera.h Add near/far parameters for the frustum. --- src/arcball/ArcBallCamera.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/arcball/ArcBallCamera.h b/src/arcball/ArcBallCamera.h index c5268daf3..e0abfffb2 100644 --- a/src/arcball/ArcBallCamera.h +++ b/src/arcball/ArcBallCamera.h @@ -46,7 +46,8 @@ class ArcBallCamera: public ArcBall { SceneGraph::Scene& scene, const Vector3& cameraPosition, const Vector3& viewCenter, const Vector3& upDir, Deg fov, const Vector2i& windowSize, - const Vector2i& viewportSize): + const Vector2i& viewportSize, + Float near = 0.01f, Float far = 100.0f): ArcBall{cameraPosition, viewCenter, upDir, fov, windowSize} { /* Create a camera object of a concrete type */ @@ -54,7 +55,7 @@ class ArcBallCamera: public ArcBall { (*(_camera = new SceneGraph::Camera3D{*cameraObject})) .setAspectRatioPolicy(SceneGraph::AspectRatioPolicy::Extend) .setProjectionMatrix(Matrix4::perspectiveProjection( - fov, Vector2{windowSize}.aspectRatio(), 0.01f, 1000.0f)) + fov, Vector2{windowSize}.aspectRatio(), near, far)) .setViewport(viewportSize); /* Save the abstract transformation interface and initialize the