Ich verwende die neue Qt 3D API, um während einer rechenintensiven Berechnung eine 3D-Szene anzuzeigen. Diese Szene ändert sich nur als Reaktion auf Benutzereingaben. Das Standardverhalten von Qt 3D scheint jedoch die Bildrate der Szene auf einen hohen konstanten Wert zu begrenzen, was in diesem Fall eine inakzeptable Menge an Ressourcen verbraucht.Wie kann ich die Bildrate in Qt 3D steuern?
Gibt es eine Möglichkeit, die Bildrate in Qt 3D zu steuern? Im Idealfall möchte ich nur einen neuen Frame rendern, wenn Änderungen an der Szene vorgenommen werden, aber es würde auch ausreichen, sie auf einen kleineren festen Wert zu reduzieren. Die Qt 3D-Dokumentation ist spärlich, und ich konnte keine Möglichkeit finden, eines dieser Dinge zu tun.
Edit: Ich habe gefunden und anwenden QRenderSettings::OnDemand zu meinem Wurzelknoten und Frame-Grafik, aber es hat scheinbar keinen Effekt, obwohl this impliziert, dass es sollte, da ich Qt 5,7 verwende. Jede zusätzliche Eingabe wäre sehr willkommen (auch wenn es nur einen Kommentar rechtfertigt).
Edit 2: Nach der Installation Fraps und Messung der Bildrate direkt, scheint es, dass die Szene in Wirklichkeit Frame nur bei Bedarf mit QRenderSettings :: OnDemand angewendet wird. Ohne dies bleibt die Bildrate konstant bei 60 fps, was der Bildwiederholrate meines Bildschirms entspricht. Wie auch immer, verbraucht das Programm weiterhin viel CPU-Zeit im Leerlauf, wenn Qt 3D aktiviert ist, unabhängig davon, ob das 3D-Fenster überhaupt angezeigt wird. Ich fange an zu denken, dass dies ein getrenntes Qt 3D-Problem ist, das nicht mit der Bildrate zusammenhängt, und wird wahrscheinlich eine neue Frage entsprechend öffnen.
Sind Sie sicher, dass es nicht mit Ihren Grafiken zu tun hat? –
Mit welchen fps läuft es und was wären die höchsten fps für deine Präferenz? –
Dies könnte einen Blick wert sein. Es wird es wahrscheinlich nicht lösen, aber es könnte etwas Licht auf das Problem werfen. http://stackoverflow.com/questions/36181532/qt-qapplication-framerate-drop-when-maximizing-window –