From ffaea071308887993b175b51097d01aeedafff7f Mon Sep 17 00:00:00 2001 From: Sam Gateau Date: Mon, 23 Feb 2015 07:04:14 -0800 Subject: [PATCH] trying to ge the shadow to render correctly --- libraries/entities-renderer/src/EntityTreeRenderer.cpp | 8 +++++++- libraries/render-utils/src/AbstractViewStateInterface.h | 3 +++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/libraries/entities-renderer/src/EntityTreeRenderer.cpp b/libraries/entities-renderer/src/EntityTreeRenderer.cpp index 975d0f515d..ec048cb6eb 100644 --- a/libraries/entities-renderer/src/EntityTreeRenderer.cpp +++ b/libraries/entities-renderer/src/EntityTreeRenderer.cpp @@ -332,8 +332,14 @@ void EntityTreeRenderer::leaveAllEntities() { void EntityTreeRenderer::render(RenderArgs::RenderMode renderMode, RenderArgs::RenderSide renderSide) { if (_tree) { Model::startScene(renderSide); - RenderArgs args = { this, _viewFrustum, getSizeScale(), getBoundaryLevelAdjust(), renderMode, renderSide, + + ViewFrustum* frustum = (renderMode == RenderArgs::SHADOW_RENDER_MODE) ? + _viewState->getShadowViewFrustum() : _viewState->getCurrentViewFrustum(); + + RenderArgs args = { this, frustum, getSizeScale(), getBoundaryLevelAdjust(), renderMode, renderSide, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; + + _tree->lockForRead(); _tree->recurseTreeWithOperation(renderOperation, &args); diff --git a/libraries/render-utils/src/AbstractViewStateInterface.h b/libraries/render-utils/src/AbstractViewStateInterface.h index 50a75c769a..0d73614e7c 100644 --- a/libraries/render-utils/src/AbstractViewStateInterface.h +++ b/libraries/render-utils/src/AbstractViewStateInterface.h @@ -32,6 +32,9 @@ public: /// gets the current view frustum for rendering the view state virtual ViewFrustum* getCurrentViewFrustum() = 0; + + /// gets the shadow view frustum for rendering the view state + virtual ViewFrustum* getShadowViewFrustum() = 0; virtual bool getShadowsEnabled() = 0; virtual bool getCascadeShadowsEnabled() = 0;