mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-07-24 01:34:08 +02:00
commit
e17149a49d
3 changed files with 43 additions and 23 deletions
|
@ -2329,13 +2329,13 @@ void Application::renderFollowIndicator() {
|
||||||
|
|
||||||
if (leader != NULL) {
|
if (leader != NULL) {
|
||||||
glColor3f(1.f, 0.f, 0.f);
|
glColor3f(1.f, 0.f, 0.f);
|
||||||
glVertex3f(avatar->getPosition().x,
|
glVertex3f((avatar->getHead().getPosition().x + avatar->getPosition().x) / 2.f,
|
||||||
avatar->getPosition().y,
|
(avatar->getHead().getPosition().y + avatar->getPosition().y) / 2.f,
|
||||||
avatar->getPosition().z);
|
(avatar->getHead().getPosition().z + avatar->getPosition().z) / 2.f);
|
||||||
glColor3f(0.f, 1.f, 0.f);
|
glColor3f(0.f, 1.f, 0.f);
|
||||||
glVertex3f(leader->getPosition().x,
|
glVertex3f((leader->getHead().getPosition().x + leader->getPosition().x) / 2.f,
|
||||||
leader->getPosition().y,
|
(leader->getHead().getPosition().y + leader->getPosition().y) / 2.f,
|
||||||
leader->getPosition().z);
|
(leader->getHead().getPosition().z + leader->getPosition().z) / 2.f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2343,13 +2343,13 @@ void Application::renderFollowIndicator() {
|
||||||
|
|
||||||
if (_myAvatar.getLeadingAvatar() != NULL) {
|
if (_myAvatar.getLeadingAvatar() != NULL) {
|
||||||
glColor3f(1.f, 0.f, 0.f);
|
glColor3f(1.f, 0.f, 0.f);
|
||||||
glVertex3f(_myAvatar.getPosition().x,
|
glVertex3f((_myAvatar.getHead().getPosition().x + _myAvatar.getPosition().x) / 2.f,
|
||||||
_myAvatar.getPosition().y,
|
(_myAvatar.getHead().getPosition().y + _myAvatar.getPosition().y) / 2.f,
|
||||||
_myAvatar.getPosition().z);
|
(_myAvatar.getHead().getPosition().z + _myAvatar.getPosition().z) / 2.f);
|
||||||
glColor3f(0.f, 1.f, 0.f);
|
glColor3f(0.f, 1.f, 0.f);
|
||||||
glVertex3f(_myAvatar.getLeadingAvatar()->getPosition().x,
|
glVertex3f((_myAvatar.getLeadingAvatar()->getHead().getPosition().x + _myAvatar.getLeadingAvatar()->getPosition().x) / 2.f,
|
||||||
_myAvatar.getLeadingAvatar()->getPosition().y,
|
(_myAvatar.getLeadingAvatar()->getHead().getPosition().y + _myAvatar.getLeadingAvatar()->getPosition().y) / 2.f,
|
||||||
_myAvatar.getLeadingAvatar()->getPosition().z);
|
(_myAvatar.getLeadingAvatar()->getHead().getPosition().z + _myAvatar.getLeadingAvatar()->getPosition().z) / 2.f);
|
||||||
}
|
}
|
||||||
|
|
||||||
glEnd();
|
glEnd();
|
||||||
|
@ -3108,6 +3108,7 @@ void Application::displaySide(Camera& whichCamera) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Render my own Avatar
|
// Render my own Avatar
|
||||||
|
if (_myCamera.getMode() != CAMERA_MODE_FIRST_PERSON) {
|
||||||
if (_myCamera.getMode() == CAMERA_MODE_MIRROR) {
|
if (_myCamera.getMode() == CAMERA_MODE_MIRROR) {
|
||||||
_myAvatar.getHead().setLookAtPosition(_myCamera.getPosition());
|
_myAvatar.getHead().setLookAtPosition(_myCamera.getPosition());
|
||||||
}
|
}
|
||||||
|
@ -3118,6 +3119,7 @@ void Application::displaySide(Camera& whichCamera) {
|
||||||
renderLookatIndicator(_lookatOtherPosition, whichCamera);
|
renderLookatIndicator(_lookatOtherPosition, whichCamera);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
_myAvatar.renderScreenTint(SCREEN_TINT_AFTER_AVATARS, whichCamera);
|
_myAvatar.renderScreenTint(SCREEN_TINT_AFTER_AVATARS, whichCamera);
|
||||||
|
|
||||||
|
|
|
@ -1174,6 +1174,23 @@ void Avatar::render(bool lookingInMirror, bool renderAvatarBalls) {
|
||||||
// render body
|
// render body
|
||||||
renderBody(lookingInMirror, renderAvatarBalls);
|
renderBody(lookingInMirror, renderAvatarBalls);
|
||||||
|
|
||||||
|
// render sphere when far away
|
||||||
|
if (!isMyAvatar()) {
|
||||||
|
const float MAX_ANGLE = 10.f;
|
||||||
|
glm::vec3 toTarget = _position - Application::getInstance()->getAvatar()->getPosition();
|
||||||
|
glm::vec3 delta = _height * (_head.getCameraOrientation() * IDENTITY_UP) / 2.f;
|
||||||
|
float angle = abs(angleBetween(toTarget + delta, toTarget - delta));
|
||||||
|
|
||||||
|
if (angle < MAX_ANGLE) {
|
||||||
|
glColor4f(0.5f, 0.8f, 0.8f, 1.f - angle / MAX_ANGLE);
|
||||||
|
glPushMatrix();
|
||||||
|
glTranslatef(_position.x, _position.y, _position.z);
|
||||||
|
glScalef(_height / 2.f, _height / 2.f, _height / 2.f);
|
||||||
|
glutSolidSphere(1.2f + _head.getAverageLoudness() * .0005f, 20, 20);
|
||||||
|
glPopMatrix();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// if this is my avatar, then render my interactions with the other avatar
|
// if this is my avatar, then render my interactions with the other avatar
|
||||||
if (isMyAvatar()) {
|
if (isMyAvatar()) {
|
||||||
_avatarTouch.render(Application::getInstance()->getCamera()->getPosition());
|
_avatarTouch.render(Application::getInstance()->getCamera()->getPosition());
|
||||||
|
|
|
@ -732,14 +732,15 @@ void Head::renderEyeBalls() {
|
||||||
|
|
||||||
void Head::renderLookatVectors(glm::vec3 leftEyePosition, glm::vec3 rightEyePosition, glm::vec3 lookatPosition) {
|
void Head::renderLookatVectors(glm::vec3 leftEyePosition, glm::vec3 rightEyePosition, glm::vec3 lookatPosition) {
|
||||||
|
|
||||||
glColor3f(0.0f, 0.0f, 0.0f);
|
|
||||||
glLineWidth(2.0);
|
glLineWidth(2.0);
|
||||||
glBegin(GL_LINE_STRIP);
|
glBegin(GL_LINES);
|
||||||
|
glColor4f(0.2f, 0.2f, 0.2f, 1.f);
|
||||||
glVertex3f(leftEyePosition.x, leftEyePosition.y, leftEyePosition.z);
|
glVertex3f(leftEyePosition.x, leftEyePosition.y, leftEyePosition.z);
|
||||||
|
glColor4f(1.0f, 1.0f, 1.0f, 0.f);
|
||||||
glVertex3f(lookatPosition.x, lookatPosition.y, lookatPosition.z);
|
glVertex3f(lookatPosition.x, lookatPosition.y, lookatPosition.z);
|
||||||
glEnd();
|
glColor4f(0.2f, 0.2f, 0.2f, 1.f);
|
||||||
glBegin(GL_LINE_STRIP);
|
|
||||||
glVertex3f(rightEyePosition.x, rightEyePosition.y, rightEyePosition.z);
|
glVertex3f(rightEyePosition.x, rightEyePosition.y, rightEyePosition.z);
|
||||||
|
glColor4f(1.0f, 1.0f, 1.0f, 0.f);
|
||||||
glVertex3f(lookatPosition.x, lookatPosition.y, lookatPosition.z);
|
glVertex3f(lookatPosition.x, lookatPosition.y, lookatPosition.z);
|
||||||
glEnd();
|
glEnd();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue