mirror of
https://github.com/overte-org/overte.git
synced 2025-08-10 12:42:58 +02:00
fix flicker, scissor warning, and handControllerGrab sphere size
This commit is contained in:
parent
fcaa39b245
commit
e3288a9004
3 changed files with 9 additions and 10 deletions
|
@ -81,7 +81,7 @@ void LaserPointer::disable() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void LaserPointer::setRenderState(const QString& state) {
|
void LaserPointer::setRenderState(const QString& state) {
|
||||||
if (!_currentRenderState.isEmpty()) {
|
if (!_currentRenderState.isEmpty() && state != _currentRenderState) {
|
||||||
if (_renderStates.contains(_currentRenderState)) {
|
if (_renderStates.contains(_currentRenderState)) {
|
||||||
disableRenderState(_renderStates[_currentRenderState]);
|
disableRenderState(_renderStates[_currentRenderState]);
|
||||||
}
|
}
|
||||||
|
@ -125,15 +125,12 @@ void LaserPointer::updateRenderState(const RenderState& renderState, const Inter
|
||||||
glm::vec3 endVec;
|
glm::vec3 endVec;
|
||||||
if (defaultState || !_lockEnd || type == IntersectionType::HUD) {
|
if (defaultState || !_lockEnd || type == IntersectionType::HUD) {
|
||||||
endVec = pickRay.origin + pickRay.direction * distance;
|
endVec = pickRay.origin + pickRay.direction * distance;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
if (type == IntersectionType::ENTITY) {
|
if (type == IntersectionType::ENTITY) {
|
||||||
endVec = DependencyManager::get<EntityScriptingInterface>()->getEntityTransform(objectID)[3];
|
endVec = DependencyManager::get<EntityScriptingInterface>()->getEntityTransform(objectID)[3];
|
||||||
}
|
} else if (type == IntersectionType::OVERLAY) {
|
||||||
else if (type == IntersectionType::OVERLAY) {
|
|
||||||
endVec = vec3FromVariant(qApp->getOverlays().getProperty(objectID, "position").value);
|
endVec = vec3FromVariant(qApp->getOverlays().getProperty(objectID, "position").value);
|
||||||
}
|
} else if (type == IntersectionType::AVATAR) {
|
||||||
else if (type == IntersectionType::AVATAR) {
|
|
||||||
endVec = DependencyManager::get<AvatarHashMap>()->getAvatar(objectID)->getPosition();
|
endVec = DependencyManager::get<AvatarHashMap>()->getAvatar(objectID)->getPosition();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -150,8 +147,7 @@ void LaserPointer::updateRenderState(const RenderState& renderState, const Inter
|
||||||
QVariantMap endProps;
|
QVariantMap endProps;
|
||||||
if (_centerEndY) {
|
if (_centerEndY) {
|
||||||
endProps.insert("position", end);
|
endProps.insert("position", end);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
glm::vec3 dim = vec3FromVariant(qApp->getOverlays().getProperty(renderState.getEndID(), "dimensions").value);
|
glm::vec3 dim = vec3FromVariant(qApp->getOverlays().getProperty(renderState.getEndID(), "dimensions").value);
|
||||||
endProps.insert("position", vec3toVariant(endVec + glm::vec3(0, 0.5f * dim.y, 0)));
|
endProps.insert("position", vec3toVariant(endVec + glm::vec3(0, 0.5f * dim.y, 0)));
|
||||||
}
|
}
|
||||||
|
|
|
@ -628,6 +628,7 @@ void OpenGLDisplayPlugin::compositeLayers() {
|
||||||
|
|
||||||
// Clear the depth framebuffer after drawing the scene so that the HUD elements can depth test against each other
|
// Clear the depth framebuffer after drawing the scene so that the HUD elements can depth test against each other
|
||||||
render([&](gpu::Batch& batch) {
|
render([&](gpu::Batch& batch) {
|
||||||
|
batch.enableStereo(false);
|
||||||
batch.setFramebuffer(_compositeFramebuffer);
|
batch.setFramebuffer(_compositeFramebuffer);
|
||||||
batch.clearDepthFramebuffer((float) UINT32_MAX);
|
batch.clearDepthFramebuffer((float) UINT32_MAX);
|
||||||
});
|
});
|
||||||
|
@ -657,6 +658,7 @@ void OpenGLDisplayPlugin::compositeLayers() {
|
||||||
|
|
||||||
// Clear the depth buffer again and draw the pointer last so it's on top of everything
|
// Clear the depth buffer again and draw the pointer last so it's on top of everything
|
||||||
render([&](gpu::Batch& batch) {
|
render([&](gpu::Batch& batch) {
|
||||||
|
batch.enableStereo(false);
|
||||||
batch.setFramebuffer(_compositeFramebuffer);
|
batch.setFramebuffer(_compositeFramebuffer);
|
||||||
batch.clearDepthFramebuffer((float) UINT32_MAX);
|
batch.clearDepthFramebuffer((float) UINT32_MAX);
|
||||||
});
|
});
|
||||||
|
|
|
@ -1410,7 +1410,8 @@ function MyController(hand) {
|
||||||
|
|
||||||
this.updateLaserPointer = function() {
|
this.updateLaserPointer = function() {
|
||||||
var SEARCH_SPHERE_SIZE = 0.011;
|
var SEARCH_SPHERE_SIZE = 0.011;
|
||||||
var radius = 1.2 * SEARCH_SPHERE_SIZE * this.intersectionDistance;
|
var MIN_SPHERE_SIZE = 0.0005;
|
||||||
|
var radius = Math.max(1.2 * SEARCH_SPHERE_SIZE * this.intersectionDistance, MIN_SPHERE_SIZE);
|
||||||
var dim = {x: radius, y: radius, z: radius};
|
var dim = {x: radius, y: radius, z: radius};
|
||||||
var mode = "hold";
|
var mode = "hold";
|
||||||
if (this.state !== STATE_DISTANCE_HOLDING && this.state !== STATE_DISTANCE_ROTATING) {
|
if (this.state !== STATE_DISTANCE_HOLDING && this.state !== STATE_DISTANCE_ROTATING) {
|
||||||
|
|
Loading…
Reference in a new issue