mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-07-17 20:57:44 +02:00
Alternative look-at gaze left/right with face trackers too
Instead of looking at one or other eye depending on look direction.
This commit is contained in:
parent
fada70fe02
commit
26cbb14f45
1 changed files with 14 additions and 24 deletions
|
@ -2284,19 +2284,10 @@ void Application::updateMyAvatarLookAtPosition() {
|
||||||
} else {
|
} else {
|
||||||
AvatarSharedPointer lookingAt = _myAvatar->getLookAtTargetAvatar().lock();
|
AvatarSharedPointer lookingAt = _myAvatar->getLookAtTargetAvatar().lock();
|
||||||
if (lookingAt && _myAvatar != lookingAt.get()) {
|
if (lookingAt && _myAvatar != lookingAt.get()) {
|
||||||
|
// If I am looking at someone else, look directly at one of their eyes
|
||||||
isLookingAtSomeone = true;
|
isLookingAtSomeone = true;
|
||||||
Head* lookingAtHead = static_cast<Avatar*>(lookingAt.get())->getHead();
|
Head* lookingAtHead = static_cast<Avatar*>(lookingAt.get())->getHead();
|
||||||
|
|
||||||
// If I am looking at someone else, look directly at one of their eyes
|
|
||||||
if (tracker && !tracker->isMuted()) {
|
|
||||||
// If a face tracker is active, look at the eye for the side my gaze is biased toward
|
|
||||||
if (tracker->getEstimatedEyeYaw() > _myAvatar->getHead()->getFinalYaw()) {
|
|
||||||
lookAtSpot = lookingAtHead->getRightEyePosition();
|
|
||||||
} else {
|
|
||||||
lookAtSpot = lookingAtHead->getLeftEyePosition();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
|
|
||||||
const float MAXIMUM_FACE_ANGLE = 65.0f * RADIANS_PER_DEGREE;
|
const float MAXIMUM_FACE_ANGLE = 65.0f * RADIANS_PER_DEGREE;
|
||||||
glm::vec3 lookingAtFaceOrientation = lookingAtHead->getFinalOrientationInWorldFrame() * IDENTITY_FRONT;
|
glm::vec3 lookingAtFaceOrientation = lookingAtHead->getFinalOrientationInWorldFrame() * IDENTITY_FRONT;
|
||||||
glm::vec3 fromLookingAtToMe = glm::normalize(_myAvatar->getHead()->getEyePosition()
|
glm::vec3 fromLookingAtToMe = glm::normalize(_myAvatar->getHead()->getEyePosition()
|
||||||
|
@ -2314,7 +2305,6 @@ void Application::updateMyAvatarLookAtPosition() {
|
||||||
// Just look at their head (mid point between eyes)
|
// Just look at their head (mid point between eyes)
|
||||||
lookAtSpot = lookingAtHead->getEyePosition();
|
lookAtSpot = lookingAtHead->getEyePosition();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
// I am not looking at anyone else, so just look forward
|
// I am not looking at anyone else, so just look forward
|
||||||
lookAtSpot = _myAvatar->getHead()->getEyePosition() +
|
lookAtSpot = _myAvatar->getHead()->getEyePosition() +
|
||||||
|
|
Loading…
Reference in a new issue