mirror of
https://github.com/overte-org/overte.git
synced 2025-08-08 16:58:09 +02:00
Switch back to avatar.getEyePosition() rather than
avatar.getHead().getEyePosition() because of mysterious lag.
This commit is contained in:
parent
ff67367221
commit
71a919f226
3 changed files with 16 additions and 2 deletions
|
@ -394,7 +394,7 @@ void Application::paintGL() {
|
||||||
|
|
||||||
if (_myCamera.getMode() == CAMERA_MODE_MIRROR) {
|
if (_myCamera.getMode() == CAMERA_MODE_MIRROR) {
|
||||||
_myCamera.setTightness (100.0f);
|
_myCamera.setTightness (100.0f);
|
||||||
_myCamera.setTargetPosition(_myAvatar.getHead().getEyePosition());
|
_myCamera.setTargetPosition(_myAvatar.getUprightHeadPosition());
|
||||||
_myCamera.setTargetRotation(_myAvatar.getWorldAlignedOrientation() * glm::quat(glm::vec3(0.0f, PIf, 0.0f)));
|
_myCamera.setTargetRotation(_myAvatar.getWorldAlignedOrientation() * glm::quat(glm::vec3(0.0f, PIf, 0.0f)));
|
||||||
|
|
||||||
} else if (OculusManager::isConnected()) {
|
} else if (OculusManager::isConnected()) {
|
||||||
|
@ -406,7 +406,7 @@ void Application::paintGL() {
|
||||||
|
|
||||||
} else if (_myCamera.getMode() == CAMERA_MODE_FIRST_PERSON) {
|
} else if (_myCamera.getMode() == CAMERA_MODE_FIRST_PERSON) {
|
||||||
_myCamera.setTightness(0.0f); // In first person, camera follows head exactly without delay
|
_myCamera.setTightness(0.0f); // In first person, camera follows head exactly without delay
|
||||||
_myCamera.setTargetPosition(_myAvatar.getHead().getEyePosition());
|
_myCamera.setTargetPosition(_myAvatar.getEyePosition());
|
||||||
_myCamera.setTargetRotation(_myAvatar.getHead().getCameraOrientation());
|
_myCamera.setTargetRotation(_myAvatar.getHead().getCameraOrientation());
|
||||||
|
|
||||||
} else if (_myCamera.getMode() == CAMERA_MODE_THIRD_PERSON) {
|
} else if (_myCamera.getMode() == CAMERA_MODE_THIRD_PERSON) {
|
||||||
|
|
|
@ -368,6 +368,19 @@ glm::vec3 Avatar::getUprightHeadPosition() const {
|
||||||
return _position + getWorldAlignedOrientation() * glm::vec3(0.0f, _pelvisToHeadLength, 0.0f);
|
return _position + getWorldAlignedOrientation() * glm::vec3(0.0f, _pelvisToHeadLength, 0.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
glm::vec3 Avatar::getEyePosition() {
|
||||||
|
const float EYE_UP_OFFSET = 0.36f;
|
||||||
|
const float EYE_FRONT_OFFSET = 0.8f;
|
||||||
|
|
||||||
|
glm::quat orientation = getWorldAlignedOrientation();
|
||||||
|
glm::vec3 up = orientation * IDENTITY_UP;
|
||||||
|
glm::vec3 front = orientation * IDENTITY_FRONT;
|
||||||
|
|
||||||
|
float scale = _scale * BODY_BALL_RADIUS_HEAD_BASE;
|
||||||
|
|
||||||
|
return getHead().getPosition() + up * scale * EYE_UP_OFFSET + front * scale * EYE_FRONT_OFFSET;
|
||||||
|
}
|
||||||
|
|
||||||
void Avatar::updateThrust(float deltaTime, Transmitter * transmitter) {
|
void Avatar::updateThrust(float deltaTime, Transmitter * transmitter) {
|
||||||
//
|
//
|
||||||
// Gather thrust information from keyboard and sensors to apply to avatar motion
|
// Gather thrust information from keyboard and sensors to apply to avatar motion
|
||||||
|
|
|
@ -170,6 +170,7 @@ public:
|
||||||
glm::vec3 getGravity () const { return _gravity; }
|
glm::vec3 getGravity () const { return _gravity; }
|
||||||
|
|
||||||
glm::vec3 getUprightHeadPosition() const;
|
glm::vec3 getUprightHeadPosition() const;
|
||||||
|
glm::vec3 getEyePosition();
|
||||||
|
|
||||||
AvatarVoxelSystem* getVoxels() { return &_voxels; }
|
AvatarVoxelSystem* getVoxels() { return &_voxels; }
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue