From 2889fd54dbfaadae43997539a915f472019979a4 Mon Sep 17 00:00:00 2001 From: schmelczerandras Date: Sat, 31 Oct 2020 11:13:28 +0100 Subject: [PATCH] Tweak fps autoscaler --- .../rendering/fps-quality-autoscaler.ts | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/graphics/rendering/fps-quality-autoscaler.ts b/src/graphics/rendering/fps-quality-autoscaler.ts index 41ca6c3..bebffed 100644 --- a/src/graphics/rendering/fps-quality-autoscaler.ts +++ b/src/graphics/rendering/fps-quality-autoscaler.ts @@ -20,7 +20,7 @@ export class FpsQualityAutoscaler { private adjusmentRateInMilliseconds = 500; private fps = 0; - public fpsTarget = 50; + public static fpsTarget = 30; public fpsHysteresis = 5; constructor(private readonly renderer: Renderer) {} @@ -59,18 +59,21 @@ export class FpsQualityAutoscaler { this.fps = 1000 / ninetiethPercentile; } - private distanceScale = 0.5; + private distanceScale = 0.33; private lightsScale = 1; private adjustQuality() { - if (this.fps >= this.fpsTarget + this.fpsHysteresis) { - this.distanceScale = clamp(this.distanceScale + 0.1, 0.2, 1); - this.lightsScale = clamp(this.lightsScale + 0.1, 0.2, 1); - } else if (this.fps <= this.fpsTarget + this.fpsHysteresis) { - this.distanceScale = clamp(this.distanceScale / 2, 0.2, 1); - this.lightsScale = clamp(this.lightsScale / 2, 0.2, 1); + if (this.fps >= FpsQualityAutoscaler.fpsTarget + this.fpsHysteresis) { + this.distanceScale = this.distanceScale + 0.1; + this.lightsScale = this.lightsScale + 0.1; + } else if (this.fps <= FpsQualityAutoscaler.fpsTarget + this.fpsHysteresis) { + this.distanceScale = this.distanceScale / 1.5; + this.lightsScale = this.lightsScale / 1.5; } + this.distanceScale = clamp(this.distanceScale, 0.1, 1); + this.lightsScale = clamp(this.lightsScale, 0.2, 1); + this.renderer.setRuntimeSettings({ distanceRenderScale: this.distanceScale, lightsRenderScale: this.lightsScale,