mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-07-24 00:43:51 +02:00
An afternounwatchign code
This commit is contained in:
parent
7aaecd9cdc
commit
eb616452ec
4 changed files with 11 additions and 8 deletions
|
@ -175,6 +175,7 @@ void LODManager::autoAdjustLOD(float realTimeDelta) {
|
||||||
|
|
||||||
float LODManager::getLODAngleHalfTan() const {
|
float LODManager::getLODAngleHalfTan() const {
|
||||||
return getPerspectiveAccuracyAngleTan(_octreeSizeScale, _boundaryLevelAdjust);
|
return getPerspectiveAccuracyAngleTan(_octreeSizeScale, _boundaryLevelAdjust);
|
||||||
|
|
||||||
}
|
}
|
||||||
float LODManager::getLODAngle() const {
|
float LODManager::getLODAngle() const {
|
||||||
return 2.0f * atanf(getLODAngleHalfTan());
|
return 2.0f * atanf(getLODAngleHalfTan());
|
||||||
|
@ -184,9 +185,9 @@ float LODManager::getLODAngleDeg() const {
|
||||||
}
|
}
|
||||||
|
|
||||||
void LODManager::setLODAngleDeg(float lodAngle) {
|
void LODManager::setLODAngleDeg(float lodAngle) {
|
||||||
auto newSolidAngle = std::max(0.5f, std::min(lodAngle, 90.f));
|
auto newSolidAngle = std::max(0.001f, std::min(lodAngle, 90.f));
|
||||||
auto halTan = glm::tan(glm::radians(newSolidAngle * 0.5f));
|
auto halfTan = glm::tan(glm::radians(newSolidAngle * 0.5f));
|
||||||
auto octreeSizeScale = TREE_SCALE * OCTREE_TO_MESH_RATIO / halTan;
|
auto octreeSizeScale = /*TREE_SCALE * OCTREE_TO_MESH_RATIO */ (sqrtf(3.0f) * 0.5f) / halfTan;
|
||||||
setOctreeSizeScale(octreeSizeScale);
|
setOctreeSizeScale(octreeSizeScale);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -294,7 +295,8 @@ QString LODManager::getLODFeedbackText() {
|
||||||
}
|
}
|
||||||
// distance feedback
|
// distance feedback
|
||||||
float octreeSizeScale = getOctreeSizeScale();
|
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;
|
int relativeToTwentyTwenty = 20 / relativeToDefault;
|
||||||
|
|
||||||
QString result;
|
QString result;
|
||||||
|
|
|
@ -93,7 +93,7 @@ void LodToolsDialog::updateAutomaticLODAdjust() {
|
||||||
|
|
||||||
void LodToolsDialog::sizeScaleValueChanged(int value) {
|
void LodToolsDialog::sizeScaleValueChanged(int value) {
|
||||||
auto lodManager = DependencyManager::get<LODManager>();
|
auto lodManager = DependencyManager::get<LODManager>();
|
||||||
float realValue = value * TREE_SCALE;
|
float realValue = value /** TREE_SCALE*/;
|
||||||
lodManager->setOctreeSizeScale(realValue);
|
lodManager->setOctreeSizeScale(realValue);
|
||||||
|
|
||||||
_feedback->setText(lodManager->getLODFeedbackText());
|
_feedback->setText(lodManager->getLODFeedbackText());
|
||||||
|
|
|
@ -65,8 +65,8 @@ float boundaryDistanceForRenderLevel(unsigned int renderLevel, float voxelSizeSc
|
||||||
}
|
}
|
||||||
|
|
||||||
float getPerspectiveAccuracyAngleTan(float octreeSizeScale, int boundaryLevelAdjust) {
|
float getPerspectiveAccuracyAngleTan(float octreeSizeScale, int boundaryLevelAdjust) {
|
||||||
const float maxScale = (float)TREE_SCALE;
|
const float maxScale = sqrtf(3.0f) * 0.5f; //(float)TREE_SCALE;
|
||||||
float visibleDistanceAtMaxScale = boundaryDistanceForRenderLevel(boundaryLevelAdjust, octreeSizeScale) / OCTREE_TO_MESH_RATIO;
|
float visibleDistanceAtMaxScale = boundaryDistanceForRenderLevel(boundaryLevelAdjust, octreeSizeScale) /* / OCTREE_TO_MESH_RATIO*/;
|
||||||
return (maxScale / visibleDistanceAtMaxScale);
|
return (maxScale / visibleDistanceAtMaxScale);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -80,7 +80,7 @@ Item {
|
||||||
valueVar: LODManager["lodAngleDeg"]
|
valueVar: LODManager["lodAngleDeg"]
|
||||||
valueVarSetter: (function (v) { LODManager["lodAngleDeg"] = v })
|
valueVarSetter: (function (v) { LODManager["lodAngleDeg"] = v })
|
||||||
max: 90.0
|
max: 90.0
|
||||||
min: 0.5
|
min: 0.01
|
||||||
integral: false
|
integral: false
|
||||||
|
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
|
@ -239,6 +239,7 @@ Item {
|
||||||
object: LODManager
|
object: LODManager
|
||||||
valueScale: 1.0
|
valueScale: 1.0
|
||||||
valueUnit: "deg"
|
valueUnit: "deg"
|
||||||
|
valueNumDigits: 2
|
||||||
plots: [
|
plots: [
|
||||||
{
|
{
|
||||||
prop: "lodAngleDeg",
|
prop: "lodAngleDeg",
|
||||||
|
|
Loading…
Reference in a new issue