From e023c012b42e0de571a4235430dc76dcadf1d15c Mon Sep 17 00:00:00 2001 From: Erwin Coumans Date: Thu, 25 May 2017 13:39:36 -0700 Subject: [PATCH] TinyRendererVisualShapeConverter set near/far for its own camera. --- examples/OpenGLWindow/SimpleCamera.cpp | 10 ++++++++++ examples/OpenGLWindow/SimpleCamera.h | 3 +++ .../SharedMemory/TinyRendererVisualShapeConverter.cpp | 5 +++++ 3 files changed, 18 insertions(+) diff --git a/examples/OpenGLWindow/SimpleCamera.cpp b/examples/OpenGLWindow/SimpleCamera.cpp index 697f7ce65..6f069b0ac 100644 --- a/examples/OpenGLWindow/SimpleCamera.cpp +++ b/examples/OpenGLWindow/SimpleCamera.cpp @@ -421,3 +421,13 @@ float SimpleCamera::getCameraFrustumNear() const { return m_data->m_frustumZNear; } + +void SimpleCamera::setCameraFrustumFar(float far) +{ + m_data->m_frustumZFar = far; +} + +void SimpleCamera::setCameraFrustumNear(float near) +{ + m_data->m_frustumZNear = near; +} diff --git a/examples/OpenGLWindow/SimpleCamera.h b/examples/OpenGLWindow/SimpleCamera.h index 7fbdaae8c..d397c5386 100644 --- a/examples/OpenGLWindow/SimpleCamera.h +++ b/examples/OpenGLWindow/SimpleCamera.h @@ -54,6 +54,9 @@ struct SimpleCamera : public CommonCameraInterface virtual float getCameraFrustumFar() const; virtual float getCameraFrustumNear() const; + + virtual void setCameraFrustumFar(float far); + virtual void setCameraFrustumNear(float near); }; #endif //SIMPLE_CAMERA_H diff --git a/examples/SharedMemory/TinyRendererVisualShapeConverter.cpp b/examples/SharedMemory/TinyRendererVisualShapeConverter.cpp index 8c03556cf..f9dfaee71 100644 --- a/examples/SharedMemory/TinyRendererVisualShapeConverter.cpp +++ b/examples/SharedMemory/TinyRendererVisualShapeConverter.cpp @@ -726,7 +726,12 @@ void TinyRendererVisualShapeConverter::render(const float viewMat[16], const flo clearColor.bgra[3] = 255; clearBuffers(clearColor); + float near = projMat[14]/(projMat[10]-1); + float far = projMat[14]/(projMat[10]+1); + m_data->m_camera.setCameraFrustumNear( near); + m_data->m_camera.setCameraFrustumFar(far); + ATTRIBUTE_ALIGNED16(btScalar modelMat[16]);