mirror of
https://github.com/overte-org/overte.git
synced 2025-08-08 04:37:23 +02:00
Don't look straight ahead in fullscreen mirror
This commit is contained in:
parent
17b2bf1c33
commit
eda12fd3af
1 changed files with 8 additions and 9 deletions
|
@ -2614,20 +2614,19 @@ void Application::updateMyAvatarLookAtPosition() {
|
||||||
bool isLookingAtSomeone = false;
|
bool isLookingAtSomeone = false;
|
||||||
bool isHMD = _avatarUpdate->isHMDMode();
|
bool isHMD = _avatarUpdate->isHMDMode();
|
||||||
glm::vec3 lookAtSpot;
|
glm::vec3 lookAtSpot;
|
||||||
if (_myCamera.getMode() == CAMERA_MODE_MIRROR) {
|
if (eyeTracker->isTracking() && (isHMD || eyeTracker->isSimulating())) {
|
||||||
// When I am in mirror mode, just look right at the camera (myself); don't switch gaze points because when physically
|
|
||||||
// looking in a mirror one's eyes appear steady.
|
|
||||||
lookAtSpot = _myCamera.getPosition();
|
|
||||||
} else if (eyeTracker->isTracking() && (isHMD || eyeTracker->isSimulating())) {
|
|
||||||
// Look at the point that the user is looking at.
|
// Look at the point that the user is looking at.
|
||||||
|
glm::vec3 lookAtPosition = eyeTracker->getLookAtPosition();
|
||||||
|
if (_myCamera.getMode() == CAMERA_MODE_MIRROR) {
|
||||||
|
lookAtPosition.x = -lookAtPosition.x;
|
||||||
|
}
|
||||||
if (isHMD) {
|
if (isHMD) {
|
||||||
glm::mat4 headPose = getActiveDisplayPlugin()->getHeadPose();
|
glm::mat4 headPose = getActiveDisplayPlugin()->getHeadPose();
|
||||||
glm::quat hmdRotation = glm::quat_cast(headPose);
|
glm::quat hmdRotation = glm::quat_cast(headPose);
|
||||||
lookAtSpot = _myCamera.getPosition() +
|
lookAtSpot = _myCamera.getPosition() + _myAvatar->getOrientation() * (hmdRotation * lookAtPosition);
|
||||||
_myAvatar->getOrientation() * (hmdRotation * eyeTracker->getLookAtPosition());
|
|
||||||
} else {
|
} else {
|
||||||
lookAtSpot = _myAvatar->getHead()->getEyePosition() +
|
lookAtSpot = _myAvatar->getHead()->getEyePosition()
|
||||||
(_myAvatar->getHead()->getFinalOrientationInWorldFrame() * eyeTracker->getLookAtPosition());
|
+ (_myAvatar->getHead()->getFinalOrientationInWorldFrame() * lookAtPosition);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
AvatarSharedPointer lookingAt = _myAvatar->getLookAtTargetAvatar().lock();
|
AvatarSharedPointer lookingAt = _myAvatar->getLookAtTargetAvatar().lock();
|
||||||
|
|
Loading…
Reference in a new issue