From 1d2cf3536b8baf4ef176547f5c87066f806a72dc Mon Sep 17 00:00:00 2001 From: Atlante45 Date: Mon, 4 Aug 2014 11:20:18 -0700 Subject: [PATCH] Coefficients tweaks --- interface/src/devices/DdeFaceTracker.cpp | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/interface/src/devices/DdeFaceTracker.cpp b/interface/src/devices/DdeFaceTracker.cpp index 23dad928d3..acaa6d4faf 100644 --- a/interface/src/devices/DdeFaceTracker.cpp +++ b/interface/src/devices/DdeFaceTracker.cpp @@ -172,6 +172,12 @@ float DdeFaceTracker::getBlendshapeCoefficient(int index) const { return (index >= 0 && index < (int)_blendshapeCoefficients.size()) ? _blendshapeCoefficients[index] : 0.0f; } +static const float DDE_MIN_RANGE = -0.2; +static const float DDE_MAX_RANGE = 1.5; +float rescaleCoef(float ddeCoef) { + return (ddeCoef - DDE_MIN_RANGE) / (DDE_MAX_RANGE - DDE_MIN_RANGE); +} + void DdeFaceTracker::decodePacket(const QByteArray& buffer) { if(buffer.size() > MIN_PACKET_SIZE) { Packet packet; @@ -203,14 +209,11 @@ void DdeFaceTracker::decodePacket(const QByteArray& buffer) { _headRotation = rotation; // Set blendshapes - _blendshapeCoefficients[_leftBlinkIndex] = packet.expressions[1]; - _blendshapeCoefficients[_rightBlinkIndex] = packet.expressions[0]; + _blendshapeCoefficients[_leftBlinkIndex] = rescaleCoef(packet.expressions[1]); + _blendshapeCoefficients[_rightBlinkIndex] = rescaleCoef(packet.expressions[0]); - _blendshapeCoefficients[_browDownLeftIndex] = packet.expressions[14]; - _blendshapeCoefficients[_browDownRightIndex] = packet.expressions[15]; - _blendshapeCoefficients[_browUpCenterIndex] = (packet.expressions[14] + packet.expressions[14]) / 2.0f; - _blendshapeCoefficients[_browUpLeftIndex] = packet.expressions[14]; - _blendshapeCoefficients[_browUpRightIndex] = packet.expressions[15]; + _blendshapeCoefficients[_browDownLeftIndex] = rescaleCoef(packet.expressions[14]); + _blendshapeCoefficients[_browDownRightIndex] = rescaleCoef(packet.expressions[15]); _blendshapeCoefficients[_jawOpenIndex] = packet.expressions[21];