mirror of
https://github.com/overte-org/overte.git
synced 2025-08-06 16:36:54 +02:00
Render spheres over avatar eyes if they're looking at me
This commit is contained in:
parent
d6aa6b930b
commit
9ac4e2f687
1 changed files with 15 additions and 16 deletions
|
@ -448,36 +448,35 @@ void Avatar::render(RenderArgs* renderArgs, const glm::vec3& cameraPosition, boo
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Stack indicator spheres
|
|
||||||
float indicatorOffset = 0.0f;
|
|
||||||
if (!_displayName.isEmpty() && _displayNameAlpha != 0.0f) {
|
|
||||||
const float DISPLAY_NAME_INDICATOR_OFFSET = 0.22f;
|
|
||||||
indicatorOffset = DISPLAY_NAME_INDICATOR_OFFSET;
|
|
||||||
}
|
|
||||||
const float INDICATOR_RADIUS = 0.03f;
|
|
||||||
const float INDICATOR_INDICATOR_OFFSET = 3.0f * INDICATOR_RADIUS;
|
|
||||||
|
|
||||||
// If this is the avatar being looked at, render a little ball above their head
|
// If this is the avatar being looked at, render a little ball above their head
|
||||||
if (_isLookAtTarget && Menu::getInstance()->isOptionChecked(MenuOption::RenderFocusIndicator)) {
|
if (_isLookAtTarget && Menu::getInstance()->isOptionChecked(MenuOption::RenderFocusIndicator)) {
|
||||||
|
const float INDICATOR_OFFSET = 0.22f;
|
||||||
|
const float INDICATOR_RADIUS = 0.03f;
|
||||||
const glm::vec4 LOOK_AT_INDICATOR_COLOR = { 0.8f, 0.0f, 0.0f, 0.75f };
|
const glm::vec4 LOOK_AT_INDICATOR_COLOR = { 0.8f, 0.0f, 0.0f, 0.75f };
|
||||||
glm::vec3 position = glm::vec3(_position.x, getDisplayNamePosition().y + indicatorOffset, _position.z);
|
glm::vec3 position = glm::vec3(_position.x, getDisplayNamePosition().y + INDICATOR_OFFSET, _position.z);
|
||||||
Transform transform;
|
Transform transform;
|
||||||
transform.setTranslation(position);
|
transform.setTranslation(position);
|
||||||
batch.setModelTransform(transform);
|
batch.setModelTransform(transform);
|
||||||
DependencyManager::get<DeferredLightingEffect>()->renderSolidSphere(batch, INDICATOR_RADIUS,
|
DependencyManager::get<DeferredLightingEffect>()->renderSolidSphere(batch, INDICATOR_RADIUS,
|
||||||
15, 15, LOOK_AT_INDICATOR_COLOR);
|
15, 15, LOOK_AT_INDICATOR_COLOR);
|
||||||
indicatorOffset += INDICATOR_INDICATOR_OFFSET;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// If the avatar is looking at me, render an indication that they area
|
// If the avatar is looking at me, indicate that they are
|
||||||
if (getHead()->getIsLookingAtMe() && Menu::getInstance()->isOptionChecked(MenuOption::ShowWhosLookingAtMe)) {
|
if (getHead()->getIsLookingAtMe() && Menu::getInstance()->isOptionChecked(MenuOption::ShowWhosLookingAtMe)) {
|
||||||
const glm::vec4 LOOKING_AT_ME_COLOR = { 0.8f, 0.65f, 0.0f, 0.1f };
|
const glm::vec3 LOOKING_AT_ME_COLOR = { 1.0f, 1.0f, 1.0f };
|
||||||
glm::vec3 position = glm::vec3(_position.x, getDisplayNamePosition().y + indicatorOffset, _position.z);
|
float alpha = 1.0f;
|
||||||
|
float radius = 0.035f;
|
||||||
Transform transform;
|
Transform transform;
|
||||||
|
glm::vec3 position = getHead()->getLeftEyePosition();
|
||||||
transform.setTranslation(position);
|
transform.setTranslation(position);
|
||||||
batch.setModelTransform(transform);
|
batch.setModelTransform(transform);
|
||||||
DependencyManager::get<DeferredLightingEffect>()->renderSolidSphere(batch, INDICATOR_RADIUS,
|
DependencyManager::get<DeferredLightingEffect>()->renderSolidSphere(batch, radius, 15, 15,
|
||||||
15, 15, LOOKING_AT_ME_COLOR);
|
glm::vec4(LOOKING_AT_ME_COLOR, alpha));
|
||||||
|
position = getHead()->getRightEyePosition();
|
||||||
|
transform.setTranslation(position);
|
||||||
|
batch.setModelTransform(transform);
|
||||||
|
DependencyManager::get<DeferredLightingEffect>()->renderSolidSphere(batch, radius, 15, 15,
|
||||||
|
glm::vec4(LOOKING_AT_ME_COLOR, alpha));
|
||||||
}
|
}
|
||||||
|
|
||||||
// quick check before falling into the code below:
|
// quick check before falling into the code below:
|
||||||
|
|
Loading…
Reference in a new issue