mirror of
https://github.com/overte-org/overte.git
synced 2025-08-16 11:51:31 +02:00
Fix rendering own look-at vectors in HMD mode
Vectors now originate at user's physical eyeballs rather than at user avatar's eye separation.
This commit is contained in:
parent
b70c1a4960
commit
b54c2526c1
3 changed files with 11 additions and 6 deletions
|
@ -310,9 +310,13 @@ void Head::relaxLean(float deltaTime) {
|
|||
void Head::render(RenderArgs* renderArgs, float alpha, ViewFrustum* renderFrustum) {
|
||||
}
|
||||
|
||||
void Head::renderLookAts(RenderArgs* renderArgs, glm::vec3 eyeOffset) {
|
||||
void Head::renderLookAts(RenderArgs* renderArgs) {
|
||||
renderLookAts(renderArgs, _leftEyePosition, _rightEyePosition);
|
||||
}
|
||||
|
||||
void Head::renderLookAts(RenderArgs* renderArgs, glm::vec3 leftEyePosition, glm::vec3 rightEyePosition) {
|
||||
if (_renderLookatVectors) {
|
||||
renderLookatVectors(renderArgs, _leftEyePosition + eyeOffset, _rightEyePosition + eyeOffset, getCorrectedLookAtPosition());
|
||||
renderLookatVectors(renderArgs, leftEyePosition, rightEyePosition, getCorrectedLookAtPosition());
|
||||
}
|
||||
if (_renderLookatTarget) {
|
||||
renderLookatTarget(renderArgs, getCorrectedLookAtPosition());
|
||||
|
|
|
@ -40,7 +40,8 @@ public:
|
|||
void setReturnToCenter (bool returnHeadToCenter) { _returnHeadToCenter = returnHeadToCenter; }
|
||||
void setRenderLookatVectors(bool onOff) { _renderLookatVectors = onOff; }
|
||||
void setRenderLookatTarget(bool onOff) { _renderLookatTarget = onOff; }
|
||||
void renderLookAts(RenderArgs* renderArgs, glm::vec3 eyeOffset = glm::vec3());
|
||||
void renderLookAts(RenderArgs* renderArgs);
|
||||
void renderLookAts(RenderArgs* renderArgs, glm::vec3 leftEyePosition, glm::vec3 rightEyePosition);
|
||||
|
||||
/// \return orientationBase+Delta
|
||||
glm::quat getFinalOrientationInLocalFrame() const;
|
||||
|
|
|
@ -1167,9 +1167,9 @@ void MyAvatar::renderBody(RenderArgs* renderArgs, ViewFrustum* renderFrustum, fl
|
|||
}
|
||||
|
||||
if (qApp->isHMDMode()) {
|
||||
glm::vec3 eyeOffset =
|
||||
OculusManager::getMidEyePosition() + Application::getInstance()->getCamera()->getPosition() - getEyePosition();
|
||||
getHead()->renderLookAts(renderArgs, eyeOffset);
|
||||
glm::vec3 cameraPosition = Application::getInstance()->getCamera()->getPosition();
|
||||
getHead()->renderLookAts(renderArgs, cameraPosition + OculusManager::getLeftEyePosition(),
|
||||
cameraPosition + OculusManager::getRightEyePosition());
|
||||
} else {
|
||||
getHead()->renderLookAts(renderArgs);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue