diff --git a/interface/src/LODManager.cpp b/interface/src/LODManager.cpp index 0cf795e35b..24043f4124 100644 --- a/interface/src/LODManager.cpp +++ b/interface/src/LODManager.cpp @@ -175,6 +175,7 @@ void LODManager::autoAdjustLOD(float realTimeDelta) { float LODManager::getLODAngleHalfTan() const { return getPerspectiveAccuracyAngleTan(_octreeSizeScale, _boundaryLevelAdjust); + } float LODManager::getLODAngle() const { return 2.0f * atanf(getLODAngleHalfTan()); @@ -184,9 +185,9 @@ float LODManager::getLODAngleDeg() const { } void LODManager::setLODAngleDeg(float lodAngle) { - auto newSolidAngle = std::max(0.5f, std::min(lodAngle, 90.f)); - auto halTan = glm::tan(glm::radians(newSolidAngle * 0.5f)); - auto octreeSizeScale = TREE_SCALE * OCTREE_TO_MESH_RATIO / halTan; + auto newSolidAngle = std::max(0.001f, std::min(lodAngle, 90.f)); + auto halfTan = glm::tan(glm::radians(newSolidAngle * 0.5f)); + auto octreeSizeScale = /*TREE_SCALE * OCTREE_TO_MESH_RATIO */ (sqrtf(3.0f) * 0.5f) / halfTan; setOctreeSizeScale(octreeSizeScale); } @@ -294,7 +295,8 @@ QString LODManager::getLODFeedbackText() { } // distance feedback float octreeSizeScale = getOctreeSizeScale(); - float relativeToDefault = octreeSizeScale / DEFAULT_OCTREE_SIZE_SCALE; + // float relativeToDefault = octreeSizeScale / DEFAULT_OCTREE_SIZE_SCALE; + float relativeToDefault = octreeSizeScale / MAX_VISIBILITY_DISTANCE_FOR_UNIT_ELEMENT; int relativeToTwentyTwenty = 20 / relativeToDefault; QString result; diff --git a/interface/src/ui/LodToolsDialog.cpp b/interface/src/ui/LodToolsDialog.cpp index e2f2d9e011..b2d0131d3b 100644 --- a/interface/src/ui/LodToolsDialog.cpp +++ b/interface/src/ui/LodToolsDialog.cpp @@ -93,7 +93,7 @@ void LodToolsDialog::updateAutomaticLODAdjust() { void LodToolsDialog::sizeScaleValueChanged(int value) { auto lodManager = DependencyManager::get(); - float realValue = value * TREE_SCALE; + float realValue = value /** TREE_SCALE*/; lodManager->setOctreeSizeScale(realValue); _feedback->setText(lodManager->getLODFeedbackText()); diff --git a/libraries/octree/src/OctreeUtils.cpp b/libraries/octree/src/OctreeUtils.cpp index 7ed9c2ed3c..788f6da85f 100644 --- a/libraries/octree/src/OctreeUtils.cpp +++ b/libraries/octree/src/OctreeUtils.cpp @@ -65,8 +65,8 @@ float boundaryDistanceForRenderLevel(unsigned int renderLevel, float voxelSizeSc } float getPerspectiveAccuracyAngleTan(float octreeSizeScale, int boundaryLevelAdjust) { - const float maxScale = (float)TREE_SCALE; - float visibleDistanceAtMaxScale = boundaryDistanceForRenderLevel(boundaryLevelAdjust, octreeSizeScale) / OCTREE_TO_MESH_RATIO; + const float maxScale = sqrtf(3.0f) * 0.5f; //(float)TREE_SCALE; + float visibleDistanceAtMaxScale = boundaryDistanceForRenderLevel(boundaryLevelAdjust, octreeSizeScale) /* / OCTREE_TO_MESH_RATIO*/; return (maxScale / visibleDistanceAtMaxScale); } diff --git a/scripts/developer/utilities/render/lod.qml b/scripts/developer/utilities/render/lod.qml index 892b43d8be..6497fb967e 100644 --- a/scripts/developer/utilities/render/lod.qml +++ b/scripts/developer/utilities/render/lod.qml @@ -80,7 +80,7 @@ Item { valueVar: LODManager["lodAngleDeg"] valueVarSetter: (function (v) { LODManager["lodAngleDeg"] = v }) max: 90.0 - min: 0.5 + min: 0.01 integral: false anchors.left: parent.left @@ -239,6 +239,7 @@ Item { object: LODManager valueScale: 1.0 valueUnit: "deg" + valueNumDigits: 2 plots: [ { prop: "lodAngleDeg",