diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 9b66b80c4c..91c09f7b5b 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -435,9 +435,8 @@ void Application::paintGL() { _glowEffect.render(); if (Menu::getInstance()->isOptionChecked(MenuOption::Mirror)) { - glm::vec3 targetPosition = _myAvatar.getUprightHeadPosition(); - _mirrorCamera.setDistance(0.2f); - _mirrorCamera.setTargetPosition(targetPosition); + _mirrorCamera.setDistance(0.3f); + _mirrorCamera.setTargetPosition(_myAvatar.getHead().calculateAverageEyePosition()); _mirrorCamera.setTargetRotation(_myAvatar.getWorldAlignedOrientation() * glm::quat(glm::vec3(0.0f, PIf, 0.0f))); _mirrorCamera.update(1.0f/_fps); @@ -1674,7 +1673,7 @@ void Application::init() { _mirrorCamera.setMode(CAMERA_MODE_MIRROR); _mirrorCamera.setAspectRatio((float)MIRROR_VIEW_WIDTH / (float)MIRROR_VIEW_HEIGHT); - _mirrorCamera.setFieldOfView(70); + _mirrorCamera.setFieldOfView(30); _mirrorViewRect = QRect(MIRROR_VIEW_LEFT_PADDING, MIRROR_VIEW_TOP_PADDING, MIRROR_VIEW_WIDTH, MIRROR_VIEW_HEIGHT); switchToResourcesParentIfRequired(); diff --git a/interface/src/avatar/FaceModel.cpp b/interface/src/avatar/FaceModel.cpp index dcc7b82f9d..fa3de1a52e 100644 --- a/interface/src/avatar/FaceModel.cpp +++ b/interface/src/avatar/FaceModel.cpp @@ -62,5 +62,8 @@ void FaceModel::maybeUpdateEyeRotation(const JointState& parentState, const FBXJ glm::vec3 front = glm::vec3(inverse * glm::vec4(_owningHead->getOrientation() * IDENTITY_FRONT, 0.0f)); glm::vec3 lookAt = glm::vec3(inverse * glm::vec4(_owningHead->getLookAtPosition() + _owningHead->getSaccade(), 1.0f)); - state.rotation = rotationBetween(front, lookAt) * joint.rotation; + glm::quat between = rotationBetween(front, lookAt); + const float MAX_ANGLE = 22.5f; + state.rotation = glm::angleAxis(glm::clamp(glm::angle(between), -MAX_ANGLE, MAX_ANGLE), glm::axis(between)) * + joint.rotation; }