diff --git a/interface/src/LODManager.cpp b/interface/src/LODManager.cpp index 36aca19b88..ee7051bbbe 100644 --- a/interface/src/LODManager.cpp +++ b/interface/src/LODManager.cpp @@ -92,8 +92,7 @@ void LODManager::autoAdjustLOD(float realTimeDelta) { return; } - // Previous values for output - float oldVisibilityDistance = getVisibilityDistance(); + // Previous value for output float oldLODAngle = getLODAngleDeg(); // Target fps is slightly overshooted by 5hz @@ -174,7 +173,6 @@ void LODManager::autoAdjustLOD(float realTimeDelta) { float LODManager::getLODHalfAngleTan() const { return tan(_lodHalfAngle); - } float LODManager::getLODAngle() const { return 2.0f * _lodHalfAngle; @@ -196,10 +194,9 @@ void LODManager::setVisibilityDistance(float distance) { } void LODManager::setLODAngleDeg(float lodAngle) { - auto newSolidAngle = std::max(0.001f, std::min(lodAngle, 90.f)); - auto halfTan = glm::tan(glm::radians(newSolidAngle * 0.5f)); - auto visibilityDistance = UNIT_ELEMENT_MAX_EXTENT / halfTan; - setVisibilityDistance(visibilityDistance); + auto newLODAngleDeg = std::max(0.001f, std::min(lodAngle, 90.f)); + auto newLODHalfAngle = glm::radians(newLODAngleDeg * 0.5); + _lodHalfAngle = newLODHalfAngle; } void LODManager::setSmoothScale(float t) { diff --git a/libraries/octree/src/OctreeUtils.cpp b/libraries/octree/src/OctreeUtils.cpp index 9fc246496a..2aae73c566 100644 --- a/libraries/octree/src/OctreeUtils.cpp +++ b/libraries/octree/src/OctreeUtils.cpp @@ -37,7 +37,8 @@ float getVisibilityDistanceFromHalfAngle(float halfAngle) { } float getHalfAngleFromVisibilityDistance(float visibilityDistance) { - return UNIT_ELEMENT_MAX_EXTENT / visibilityDistance; + float halfAngleTan = UNIT_ELEMENT_MAX_EXTENT / visibilityDistance; + return atan(halfAngleTan); } float getOrthographicAccuracySize(float visibilityDistance, int boundaryLevelAdjust) {