mirror of
https://github.com/overte-org/overte.git
synced 2025-08-09 06:18:52 +02:00
Fix excluding saccades when doing eye tracking
This commit is contained in:
parent
551c00dc23
commit
427b8b973c
1 changed files with 17 additions and 12 deletions
|
@ -131,20 +131,25 @@ void Head::simulate(float deltaTime, bool isMine, bool billboard) {
|
||||||
setTorsoTwist(currentTwist + (getFinalYaw() * BODY_FOLLOW_HEAD_FACTOR - currentTwist) * BODY_FOLLOW_HEAD_YAW_RATE);
|
setTorsoTwist(currentTwist + (getFinalYaw() * BODY_FOLLOW_HEAD_FACTOR - currentTwist) * BODY_FOLLOW_HEAD_YAW_RATE);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(_isFaceTrackerConnected || _isEyeTrackerConnected || billboard)) {
|
if (!(_isFaceTrackerConnected || billboard)) {
|
||||||
// Update eye saccades
|
|
||||||
const float AVERAGE_MICROSACCADE_INTERVAL = 1.0f;
|
|
||||||
const float AVERAGE_SACCADE_INTERVAL = 6.0f;
|
|
||||||
const float MICROSACCADE_MAGNITUDE = 0.002f;
|
|
||||||
const float SACCADE_MAGNITUDE = 0.04f;
|
|
||||||
const float NOMINAL_FRAME_RATE = 60.0f;
|
|
||||||
|
|
||||||
if (randFloat() < deltaTime / AVERAGE_MICROSACCADE_INTERVAL) {
|
if (!_isEyeTrackerConnected) {
|
||||||
_saccadeTarget = MICROSACCADE_MAGNITUDE * randVector();
|
// Update eye saccades
|
||||||
} else if (randFloat() < deltaTime / AVERAGE_SACCADE_INTERVAL) {
|
const float AVERAGE_MICROSACCADE_INTERVAL = 1.0f;
|
||||||
_saccadeTarget = SACCADE_MAGNITUDE * randVector();
|
const float AVERAGE_SACCADE_INTERVAL = 6.0f;
|
||||||
|
const float MICROSACCADE_MAGNITUDE = 0.002f;
|
||||||
|
const float SACCADE_MAGNITUDE = 0.04f;
|
||||||
|
const float NOMINAL_FRAME_RATE = 60.0f;
|
||||||
|
|
||||||
|
if (randFloat() < deltaTime / AVERAGE_MICROSACCADE_INTERVAL) {
|
||||||
|
_saccadeTarget = MICROSACCADE_MAGNITUDE * randVector();
|
||||||
|
} else if (randFloat() < deltaTime / AVERAGE_SACCADE_INTERVAL) {
|
||||||
|
_saccadeTarget = SACCADE_MAGNITUDE * randVector();
|
||||||
|
}
|
||||||
|
_saccade += (_saccadeTarget - _saccade) * pow(0.5f, NOMINAL_FRAME_RATE * deltaTime);
|
||||||
|
} else {
|
||||||
|
_saccade = glm::vec3();
|
||||||
}
|
}
|
||||||
_saccade += (_saccadeTarget - _saccade) * pow(0.5f, NOMINAL_FRAME_RATE * deltaTime);
|
|
||||||
|
|
||||||
// Detect transition from talking to not; force blink after that and a delay
|
// Detect transition from talking to not; force blink after that and a delay
|
||||||
bool forceBlink = false;
|
bool forceBlink = false;
|
||||||
|
|
Loading…
Reference in a new issue