Fix for shadows in close-up inset mirror.

This commit is contained in:
Andrzej Kapolka 2014-07-22 19:19:13 -07:00
parent 9cee549bf0
commit 9cf0d6c851

View file

@ -2981,6 +2981,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
@ -2989,6 +2996,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);
}