mirror of
https://github.com/JulianGro/overte.git
synced 2025-04-08 06:22:14 +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 {
|
||||
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;
|
||||
|
|
|
@ -93,7 +93,7 @@ void LodToolsDialog::updateAutomaticLODAdjust() {
|
|||
|
||||
void LodToolsDialog::sizeScaleValueChanged(int value) {
|
||||
auto lodManager = DependencyManager::get<LODManager>();
|
||||
float realValue = value * TREE_SCALE;
|
||||
float realValue = value /** TREE_SCALE*/;
|
||||
lodManager->setOctreeSizeScale(realValue);
|
||||
|
||||
_feedback->setText(lodManager->getLODFeedbackText());
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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",
|
||||
|
|
Loading…
Reference in a new issue