History

Tie shadow frustum to boom offset

Zach Pomerantz committed 10 years ago

Commit 2da2bc61 parent f4925d73 files · +11 −9Browse files

Showing the changes to interface/src/Application.cpp (1 of 3 files). Show all

Unified · Split

interface/src/Application.cpp+7−6
@@ -1380,10 +1380,12 @@ void Application::paintGL() { · 1379 unmodified lines
1380 1380
1381 }1381 }
1382 1382
1383 glm::vec3 boomOffset;
1383 {1384 {
1384 PerformanceTimer perfTimer("CameraUpdates");1385 PerformanceTimer perfTimer("CameraUpdates");
1385 1386
1386 auto myAvatar = getMyAvatar();1387 auto myAvatar = getMyAvatar();
1388 boomOffset = myAvatar->getScale() * myAvatar->getBoomLength() * -IDENTITY_FRONT;
1387 1389
1388 myAvatar->startCapture();1390 myAvatar->startCapture();
1389 if (_myCamera.getMode() == CAMERA_MODE_FIRST_PERSON || _myCamera.getMode() == CAMERA_MODE_THIRD_PERSON) {1391 if (_myCamera.getMode() == CAMERA_MODE_FIRST_PERSON || _myCamera.getMode() == CAMERA_MODE_THIRD_PERSON) {
@@ -1411,18 +1413,16 @@ void Application::paintGL() { · 21 unmodified lines
1411 if (isHMDMode()) {1413 if (isHMDMode()) {
1412 auto hmdWorldMat = myAvatar->getSensorToWorldMatrix() * myAvatar->getHMDSensorMatrix();1414 auto hmdWorldMat = myAvatar->getSensorToWorldMatrix() * myAvatar->getHMDSensorMatrix();
1413 _myCamera.setRotation(glm::normalize(glm::quat_cast(hmdWorldMat)));1415 _myCamera.setRotation(glm::normalize(glm::quat_cast(hmdWorldMat)));
1414 auto worldBoomOffset = myAvatar->getOrientation() * (myAvatar->getScale() * myAvatar->getBoomLength() * glm::vec3(0.0f, 0.0f, 1.0f));1416 _myCamera.setPosition(extractTranslation(hmdWorldMat) +
1415 _myCamera.setPosition(extractTranslation(hmdWorldMat) + worldBoomOffset);1417 myAvatar->getOrientation() * boomOffset);
1416 } else {1418 } else {
1417 _myCamera.setRotation(myAvatar->getHead()->getOrientation());1419 _myCamera.setRotation(myAvatar->getHead()->getOrientation());
1418 if (Menu::getInstance()->isOptionChecked(MenuOption::CenterPlayerInView)) {1420 if (Menu::getInstance()->isOptionChecked(MenuOption::CenterPlayerInView)) {
1419 _myCamera.setPosition(myAvatar->getDefaultEyePosition()1421 _myCamera.setPosition(myAvatar->getDefaultEyePosition()
1420 + _myCamera.getRotation()1422 + _myCamera.getRotation() * boomOffset);
1421 * (myAvatar->getScale() * myAvatar->getBoomLength() * glm::vec3(0.0f, 0.0f, 1.0f)));
1422 } else {1423 } else {
1423 _myCamera.setPosition(myAvatar->getDefaultEyePosition()1424 _myCamera.setPosition(myAvatar->getDefaultEyePosition()
1424 + myAvatar->getOrientation()1425 + myAvatar->getOrientation() * boomOffset);
1425 * (myAvatar->getScale() * myAvatar->getBoomLength() * glm::vec3(0.0f, 0.0f, 1.0f)));
1426 }1426 }
1427 }1427 }
1428 } else if (_myCamera.getMode() == CAMERA_MODE_MIRROR) {1428 } else if (_myCamera.getMode() == CAMERA_MODE_MIRROR) {
@@ -1488,6 +1488,7 @@ void Application::paintGL() { · 59 unmodified lines
1488 {1488 {
1489 PROFILE_RANGE(__FUNCTION__ "/mainRender");1489 PROFILE_RANGE(__FUNCTION__ "/mainRender");
1490 PerformanceTimer perfTimer("mainRender");1490 PerformanceTimer perfTimer("mainRender");
1491 renderArgs._boomOffset = boomOffset;
1491 // Viewport is assigned to the size of the framebuffer1492 // Viewport is assigned to the size of the framebuffer
1492 renderArgs._viewport = ivec4(0, 0, size.width(), size.height());1493 renderArgs._viewport = ivec4(0, 0, size.width(), size.height());
1493 if (displayPlugin->isStereo()) {1494 if (displayPlugin->isStereo()) {