diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 1137c50342..6aa6fcd19e 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -2982,6 +2982,13 @@ void Application::renderRearViewMirror(const QRect& region, bool billboard) { attachment->setTranslation(attachment->getTranslation() + delta); } + // and lo, even the shadow matrices + glm::mat4 savedShadowMatrices[CASCADED_SHADOW_MATRIX_COUNT]; + for (int i = 0; i < CASCADED_SHADOW_MATRIX_COUNT; i++) { + savedShadowMatrices[i] = _shadowMatrices[i]; + _shadowMatrices[i] = glm::transpose(glm::transpose(_shadowMatrices[i]) * glm::translate(-delta)); + } + displaySide(_mirrorCamera, true); // restore absolute translations @@ -2990,6 +2997,11 @@ void Application::renderRearViewMirror(const QRect& region, bool billboard) { for (int i = 0; i < absoluteAttachmentTranslations.size(); i++) { _myAvatar->getAttachmentModels().at(i)->setTranslation(absoluteAttachmentTranslations.at(i)); } + + // restore the shadow matrices + for (int i = 0; i < CASCADED_SHADOW_MATRIX_COUNT; i++) { + _shadowMatrices[i] = savedShadowMatrices[i]; + } } else { displaySide(_mirrorCamera, true); }