From a4f79390f46b617767a54ecbd19c1d44de70cd94 Mon Sep 17 00:00:00 2001 From: Andrzej Kapolka Date: Tue, 17 Sep 2013 10:25:27 -0700 Subject: [PATCH 1/2] Fixed initialization order. --- interface/src/devices/Faceshift.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/interface/src/devices/Faceshift.cpp b/interface/src/devices/Faceshift.cpp index cc86785e60..e1480e39d2 100644 --- a/interface/src/devices/Faceshift.cpp +++ b/interface/src/devices/Faceshift.cpp @@ -28,6 +28,10 @@ Faceshift::Faceshift() : _rightBlink(0.0f), _leftEyeOpen(0.0f), _rightEyeOpen(0.0f), + _leftBlinkIndex(0), // see http://support.faceshift.com/support/articles/35129-export-of-blendshapes + _rightBlinkIndex(1), + _leftEyeOpenIndex(8), + _rightEyeOpenIndex(9), _browDownLeft(0.0f), _browDownRight(0.0f), _browUpCenter(0.0f), @@ -35,6 +39,7 @@ Faceshift::Faceshift() : _browUpRight(0.0f), _browDownLeftIndex(-1), _browDownRightIndex(-1), + _browUpCenterIndex(16), _browUpLeftIndex(-1), _browUpRightIndex(-1), _mouthSize(0.0f), @@ -42,11 +47,6 @@ Faceshift::Faceshift() : _mouthSmileRight(0), _mouthSmileLeftIndex(-1), _mouthSmileRightIndex(0), - _leftBlinkIndex(0), // see http://support.faceshift.com/support/articles/35129-export-of-blendshapes - _rightBlinkIndex(1), - _leftEyeOpenIndex(8), - _rightEyeOpenIndex(9), - _browUpCenterIndex(16), _jawOpenIndex(21), _longTermAverageEyePitch(0.0f), _longTermAverageEyeYaw(0.0f), From 262365f15fef0202929f1570da0a7443167e4cb1 Mon Sep 17 00:00:00 2001 From: Andrzej Kapolka Date: Tue, 17 Sep 2013 10:51:33 -0700 Subject: [PATCH 2/2] Only render the Perlin face for the local user. --- interface/src/avatar/Avatar.cpp | 4 ++-- interface/src/avatar/Head.cpp | 4 ++-- interface/src/avatar/Head.h | 2 +- interface/src/avatar/MyAvatar.cpp | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/interface/src/avatar/Avatar.cpp b/interface/src/avatar/Avatar.cpp index 084b1f8c85..0df2f2d41c 100755 --- a/interface/src/avatar/Avatar.cpp +++ b/interface/src/avatar/Avatar.cpp @@ -723,7 +723,7 @@ void Avatar::renderBody(bool lookingInMirror, bool renderAvatarBalls) { // Always render other people, and render myself when beyond threshold distance if (b == BODY_BALL_HEAD_BASE) { // the head is rendered as a special if (alpha > 0.0f) { - _head.render(alpha); + _head.render(alpha, false); } } else if (alpha > 0.0f) { // Render the body ball sphere @@ -767,7 +767,7 @@ void Avatar::renderBody(bool lookingInMirror, bool renderAvatarBalls) { float alpha = getBallRenderAlpha(BODY_BALL_HEAD_BASE, lookingInMirror); if (alpha > 0.0f) { _voxels.render(false); - _head.render(alpha); + _head.render(alpha, false); } } _hand.render(lookingInMirror); diff --git a/interface/src/avatar/Head.cpp b/interface/src/avatar/Head.cpp index af6133460f..9c86f92e2b 100644 --- a/interface/src/avatar/Head.cpp +++ b/interface/src/avatar/Head.cpp @@ -322,7 +322,7 @@ void Head::calculateGeometry() { + up * _scale * NOSE_UPTURN; } -void Head::render(float alpha) { +void Head::render(float alpha, bool isMine) { _renderAlpha = alpha; if (!_face.render(alpha)) { @@ -331,7 +331,7 @@ void Head::render(float alpha) { glEnable(GL_DEPTH_TEST); glEnable(GL_RESCALE_NORMAL); - if (Menu::getInstance()->isOptionChecked(MenuOption::UsePerlinFace)) { + if (Menu::getInstance()->isOptionChecked(MenuOption::UsePerlinFace) && isMine) { _perlinFace.render(); } else { renderMohawk(); diff --git a/interface/src/avatar/Head.h b/interface/src/avatar/Head.h index 496fdecef6..90d4507c7b 100644 --- a/interface/src/avatar/Head.h +++ b/interface/src/avatar/Head.h @@ -43,7 +43,7 @@ public: void init(); void reset(); void simulate(float deltaTime, bool isMine, float gyroCameraSensitivity); - void render(float alpha); + void render(float alpha, bool isMine); void renderMohawk(); void setScale(float scale); diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index 0dcfe32236..c9d0dd37bc 100644 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -557,7 +557,7 @@ void MyAvatar::renderBody(bool lookingInMirror, bool renderAvatarBalls) { // Always render other people, and render myself when beyond threshold distance if (b == BODY_BALL_HEAD_BASE) { // the head is rendered as a special if (alpha > 0.0f) { - _head.render(alpha); + _head.render(alpha, true); } } else if (alpha > 0.0f) { // Render the body ball sphere @@ -614,7 +614,7 @@ void MyAvatar::renderBody(bool lookingInMirror, bool renderAvatarBalls) { float alpha = getBallRenderAlpha(BODY_BALL_HEAD_BASE, lookingInMirror); if (alpha > 0.0f) { _voxels.render(false); - _head.render(alpha); + _head.render(alpha, true); } } _hand.render(lookingInMirror);