mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-08-09 18:18:02 +02:00
Merge pull request #6767 from howard-stearns/pid-render-limits
render limits fixes
This commit is contained in:
commit
43d8c14c16
4 changed files with 7 additions and 6 deletions
|
@ -264,7 +264,7 @@ Item {
|
||||||
Text {
|
Text {
|
||||||
color: root.fontColor;
|
color: root.fontColor;
|
||||||
font.pixelSize: root.fontSize
|
font.pixelSize: root.fontSize
|
||||||
visible: root.expanded
|
visible: root.expanded && !root.showAcuity
|
||||||
text: root.lodStatsRenderText;
|
text: root.lodStatsRenderText;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -250,14 +250,14 @@ int LODManager::getRenderedCount() {
|
||||||
return lastRenderedCount;
|
return lastRenderedCount;
|
||||||
}
|
}
|
||||||
QString LODManager::getLODStatsRenderText() {
|
QString LODManager::getLODStatsRenderText() {
|
||||||
QString label = getUseAcuity() ? "Renderable avatars: " : "Rendered objects: ";
|
const QString label = "Rendered objects: ";
|
||||||
return label + QString::number(getRenderedCount()) + " w/in " + QString::number((int)getRenderDistance()) + "m";
|
return label + QString::number(getRenderedCount()) + " w/in " + QString::number((int)getRenderDistance()) + "m";
|
||||||
}
|
}
|
||||||
// compare audoAdjustLOD()
|
// compare audoAdjustLOD()
|
||||||
void LODManager::updatePIDRenderDistance(float targetFps, float measuredFps, float deltaTime, bool isThrottled) {
|
void LODManager::updatePIDRenderDistance(float targetFps, float measuredFps, float deltaTime, bool isThrottled) {
|
||||||
float distance;
|
float distance;
|
||||||
if (!isThrottled) {
|
if (!isThrottled) {
|
||||||
_renderDistanceController.setMeasuredValueSetpoint(targetFps / 2.0f); // No problem updating in flight.
|
_renderDistanceController.setMeasuredValueSetpoint(targetFps); // No problem updating in flight.
|
||||||
// The PID controller raises the controlled value when the measured value goes up.
|
// The PID controller raises the controlled value when the measured value goes up.
|
||||||
// The measured value is frame rate. When the controlled value (1 / render cutoff distance)
|
// The measured value is frame rate. When the controlled value (1 / render cutoff distance)
|
||||||
// goes up, the render cutoff distance gets closer, the number of rendered avatars is less, and frame rate
|
// goes up, the render cutoff distance gets closer, the number of rendered avatars is less, and frame rate
|
||||||
|
@ -279,7 +279,7 @@ bool LODManager::shouldRender(const RenderArgs* args, const AABox& bounds) {
|
||||||
if (!getUseAcuity()) {
|
if (!getUseAcuity()) {
|
||||||
const float scenerySize = 300; // meters
|
const float scenerySize = 300; // meters
|
||||||
bool isRendered = (largestDimension > scenerySize) || // render scenery regardless of distance
|
bool isRendered = (largestDimension > scenerySize) || // render scenery regardless of distance
|
||||||
(fabsf(distanceToCamera - largestDimension) < renderDistance);
|
(distanceToCamera < renderDistance + largestDimension);
|
||||||
renderedCount += isRendered ? 1 : 0;
|
renderedCount += isRendered ? 1 : 0;
|
||||||
return isRendered;
|
return isRendered;
|
||||||
}
|
}
|
||||||
|
|
|
@ -65,7 +65,8 @@ void PreferencesDialog::changeUseAcuity() {
|
||||||
ui.desktopMinimumFPSSpin->setEnabled(useAcuity);
|
ui.desktopMinimumFPSSpin->setEnabled(useAcuity);
|
||||||
ui.label_hmdMinimumFPSSpin->setEnabled(useAcuity);
|
ui.label_hmdMinimumFPSSpin->setEnabled(useAcuity);
|
||||||
ui.hmdMinimumFPSSpin->setEnabled(useAcuity);
|
ui.hmdMinimumFPSSpin->setEnabled(useAcuity);
|
||||||
ui.label_smallestReasonableRenderHorizon->setText(useAcuity ? "Minimum Avatar Display Distance (@half speed)" : "Minimum Display Distance (@half speed)");
|
ui.label_smallestReasonableRenderHorizon->setEnabled(!useAcuity);
|
||||||
|
ui.smallestReasonableRenderHorizon->setEnabled(!useAcuity);
|
||||||
Menu::getInstance()->getActionForOption(MenuOption::LodTools)->setEnabled(useAcuity);
|
Menu::getInstance()->getActionForOption(MenuOption::LodTools)->setEnabled(useAcuity);
|
||||||
Menu::getInstance()->getSubMenuFromName(MenuOption::RenderResolution, Menu::getInstance()->getSubMenuFromName("Render", Menu::getInstance()->getMenu("Developer")))->setEnabled(useAcuity);
|
Menu::getInstance()->getSubMenuFromName(MenuOption::RenderResolution, Menu::getInstance()->getSubMenuFromName("Render", Menu::getInstance()->getMenu("Developer")))->setEnabled(useAcuity);
|
||||||
}
|
}
|
||||||
|
|
|
@ -974,7 +974,7 @@
|
||||||
<string notr="true"/>
|
<string notr="true"/>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Minimum Avatar Display Distance</string>
|
<string>Minimum Display Distance</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="indent">
|
<property name="indent">
|
||||||
<number>0</number>
|
<number>0</number>
|
||||||
|
|
Loading…
Reference in a new issue