Picking pid values

This commit is contained in:
Sam Gateau 2018-08-28 12:21:15 -07:00
parent 7b399d9a04
commit 7dfdc79644
3 changed files with 7 additions and 4 deletions

View file

@ -103,7 +103,10 @@ void LODManager::autoAdjustLOD(float realTimeDelta) {
auto output = Kp * error + Ki * integral + Kd * derivative;
previous_error = error;
auto newSolidAngle = std::max( 0.1f, std::min(output, 45.f));
auto newSolidAngle = oldSolidAngle + output;
newSolidAngle = std::max( 0.5f, std::min(newSolidAngle, 90.f));
auto halTan = glm::tan(glm::radians(newSolidAngle * 0.5f));

View file

@ -237,7 +237,7 @@ private:
float _octreeSizeScale = DEFAULT_OCTREE_SIZE_SCALE;
int _boundaryLevelAdjust = 0;
glm::vec4 _pid{ 0.1f, 0.0f, 0.0f, 3.0f };
glm::vec4 _pid{ 0.06f, 0.005f, 0.01f, 4.0f };
uint64_t _decreaseFPSExpiry { 0 };
uint64_t _increaseFPSExpiry { 0 };

View file

@ -98,7 +98,7 @@ Item {
label: "LOD PID Ki"
valueVar: LODManager["pidKi"]
valueVarSetter: (function (v) { LODManager["pidKi"] = v })
max: 1.0
max: 0.02
min: 0.0
integral: false
@ -111,7 +111,7 @@ Item {
label: "LOD PID Kd"
valueVar: LODManager["pidKd"]
valueVarSetter: (function (v) { LODManager["pidKd"] = v })
max: 1.0
max: 0.1
min: 0.0
integral: false