Zum Inhalt springen

Frame-Budget in Echtzeit

Schafft die Szene 60 fps, und wie viele Millisekunden muss ich sparen?

Antwort: In Unreal und Unity muss jeder Frame innerhalb eines festen Zeitbudgets fertig sein: bei 60 fps sind es 16,67 ms. Die CPU (Spiellogik, Draw Calls) und GPU (Shading, Lichter) arbeiten parallel an jedem eigenen Frame, sodass die langsamste der beiden die Bildfrequenz bestimmt. Der Rechner nimmt die Zeiten, die du im Profiler misst (z.B. «stat unit» in Unreal), und zeigt das Budget, die Bildfrequenz, mit der die Szene tatsächlich läuft, und wie viel du herunterfahren musst.

Formel

Frame-budget (ms) = 1000 ÷ ønsket fps

Frame-tid ≈ den største af CPU-tid og GPU-tid, fordi de arbejder parallelt

Opnået fps = 1000 ÷ frame-tid

Margin = budget − frame-tid; er den negativ, skal den langsomste del optimeres

Symbole und Einheiten in der Formel
SymbolBedeutungEinheit
maal_fpsZiel für Bildwiederholfrequenzfps
cpu_msGemessene CPU-Zeit pro Frame (Game/Draw-Thread)ms
gpu_msGemessene GPU-Zeit pro Framems
=Frame-Budgetms
=Bildrate, mit der die Szene läuftfps
=Margin til budgettet (negativ = for langsom)ms
=Das Budget ist aufgebraucht%

Gültigkeit und Quelle

Quelle
Frame-tid = 1000 ms ÷ fps; CPU og GPU arbejder parallelt, den langsomste bestemmer

Gilt nicht, wenn

  • Messe auf der Zielplattform (Headset, Konsole, PC des Kunden), nicht nur auf deiner Arbeitsstation, und in einem Build statt im Editor. Mit V-Sync wird die Bildwiederholfrequenz auf die Schritte des Bildschirms gesperrt, sodass 17 ms als 30 fps auf einem 60-Hz-Bildschirm enden kann.

Rechenbeispiel

Die eigenen Standardwerte des Rechners sind eingesetzt. Die Zahlen sind mit genau der Formel berechnet, die das Werkzeug verwendet.

Sat ind

  • Ziel für Bildwiederholfrequenz60 fps
  • Gemessene CPU-Zeit pro Frame (Game/Draw-Thread)12 ms
  • Gemessene GPU-Zeit pro Frame14 ms

Geber

  • Frame-Budget16,67 ms
  • Bildrate, mit der die Szene läuft71 fps
  • Margin til budgettet (negativ = for langsom)2,67 ms
  • Das Budget ist aufgebraucht84 %

Der Rechner selbst ist gesperrt

Lege einen kostenlosen Zugang an, um alle Artikel, Rechner, Vorlagen und das Sortiment freizuschalten — und Zugriff auf Quizze und Klassen zu erhalten. Es dauert unter einer Minute: Name, E-Mail und ein Passwort. Keine Zahlungskarte.

Willst du zuerst etwas ausprobieren? Sieh, was du ohne Konto nutzen kannst — der Junior-Bereich, das Lexikon, die Videos und mehr.

Sådan bruger du den

I en realtime-produktion i Unreal eller Unity skal hver frame blive færdig inden for et tidsbudget, ellers hakker billedet. Beregneren tager CPU- og GPU-tid fra profileren og viser budgettet, den billedhastighed du faktisk får, og hvor meget du skal spare.

Schritt für Schritt

  1. Vælg den billedhastighed, platformen kræver: 60 fps til pc, 72 eller 90 fps til VR.
  2. Mål CPU- og GPU-tiden pr. frame i profileren, fx med «stat unit» i Unreal.
  3. Den største af de to bestemmer frame-tiden.
  4. Er margenen negativ, så optimér den del, der er langsomst: draw calls og logik på CPU, shaders, lys og overdraw på GPU.

Typische Fehler

  • At lægge CPU- og GPU-tid sammen. De arbejder parallelt.
  • At måle i editoren i stedet for i en build på målplatformen.
  • At optimere GPU'en, når det er CPU'en, der er flaskehalsen.

Beispiele aus dem Alltag

Arkitektur-visualisering på pc

En arkitektvisualisering i Unreal skal køre 60 fps på kundens pc. Profileren viser 12 ms på CPU og 14 ms på GPU.

Ziel für Bildwiederholfrequenz
60 fps
Gemessene CPU-Zeit pro Frame (Game/Draw-Thread)
12 ms
Gemessene GPU-Zeit pro Frame
14 ms

Es bedeutet: Budgettet er 16,67 ms, og scenen kan nå 71 fps. Margenen er 2,67 ms, så den holder 60 fps med lidt luft.

VR-oplevelse der hakker

En VR-oplevelse skal køre 90 fps. GPU'en bruger 15 ms pr. frame og CPU'en 9 ms.

Ziel für Bildwiederholfrequenz
90 fps (VR)
Gemessene CPU-Zeit pro Frame (Game/Draw-Thread)
9 ms
Gemessene GPU-Zeit pro Frame
15 ms

Es bedeutet: Budgettet er 11,11 ms, men GPU'en gør, at scenen kun kører 67 fps. Margenen er -3,89 ms, så du skal spare på GPU'en, fx med LOD og billigere shaders.

Mobilspil der er CPU-bundet

Et mobilspil skal holde 30 fps. CPU'en bruger 38 ms pr. frame på grund af mange draw calls, GPU'en 20 ms.

Ziel für Bildwiederholfrequenz
30 fps
Gemessene CPU-Zeit pro Frame (Game/Draw-Thread)
38 ms
Gemessene GPU-Zeit pro Frame
20 ms

Es bedeutet: Budgettet er 33,33 ms, og spillet kører kun 26 fps. Budgettet er brugt 114 %, så saml objekter med batching og instancing for at få CPU-tiden ned.

Faustregel

60 fps = 16,7 ms, 90 fps = 11,1 ms, 30 fps = 33,3 ms.

So überprüfst du die Antwort

1000 ÷ opnået fps skal give den største af CPU- og GPU-tiden.