Gute Leistung ist entscheidend für den Erfolg vieler Spiele. Nachfolgend finden Sie einige einfache Richtlinien zur Maximierung der Geschwindigkeit der Wiedergabe Ihres Spiels.

Lokalisieren Sie hohe Grafikauswirkungen

Die grafischen Teile Ihres Spiels können sich vor allem auf zwei Systeme des Computers auswirken: die GPU und die CPU. Die erste Regel jeder Optimierung ist es, herauszufinden, wo sich das Performance-Problem befindet, da die Strategien und shader für schlechte pcs zur Optimierung für GPU und CPU sehr unterschiedlich sind (und sogar umgekehrt sein können – z.B. ist es durchaus üblich, dass der GPU mehr Arbeit leistet, während er für CPU optimiert wird und umgekehrt).

Häufige Engpässe und Möglichkeiten, diese zu überprüfen:

Die GPU ist oft durch die Füllrate oder die Speicherbandbreite begrenzt.

Verringern Sie die Bildschirmauflösung und starten Sie das Spiel. Wenn eine niedrigere Bildschirmauflösung das Spiel schneller laufen lässt, können Sie durch die Füllrate auf dem Grafikprozessor eingeschränkt sein.

Die CPU ist oft durch die Anzahl der zu rendernden Chargen begrenzt.

Optimierung der Grafikleistung

Aktivieren Sie „Chargen“ im Fenster Rendering Statistics. Je mehr Chargen gerendert werden, desto höher sind die Kosten für die CPU.

Weniger häufige Engpässe:

  • Die GPU hat zu viele Knoten, um sie zu verarbeiten. Die Anzahl der Knoten, die akzeptabel ist, um eine gute Leistung zu gewährleisten, hängt von der GPU und der Komplexität der Vertex-Shader ab.
  • Im Allgemeinen sollten Sie nicht mehr als 100.000 Knoten auf dem Handy anstreben. Ein PC kommt auch mit mehreren Millionen Knoten gut zurecht, aber es ist immer noch eine gute Praxis, diese Zahl durch Optimierung so niedrig wie möglich zu halten.
  • Die CPU hat zu viele Knoten zu verarbeiten. Dies kann in enthäuteten Netzen, Stoffsimulationen, Partikeln oder anderen Spielobjekten und Netzen geschehen. Wie oben beschrieben, ist es im Allgemeinen eine gute Praxis, diese Zahl so niedrig wie möglich zu halten, ohne die Spielqualität zu beeinträchtigen. Lesen Sie den folgenden Abschnitt über die CPU-Optimierung, um eine Anleitung zu erhalten, wie Sie dies tun können.

Wenn das Rendern auf der GPU oder der CPU kein Problem darstellt, kann es an anderer Stelle zu einem Problem kommen – zum Beispiel in Ihrem Skript oder Ihrer Physik. Verwenden Sie den Unity Profiler, um das Problem zu lokalisieren.

CPU-Optimierung

Um Objekte auf dem Bildschirm darzustellen, hat die CPU viel Verarbeitungsarbeit zu leisten: herauszufinden, welche Lichter dieses Objekt beeinflussen, den Shader einzurichten.

und Shader-Parameter und Senden von Zeichenbefehlen an den Grafiktreiber, der dann die Befehle vorbereitet, die an die Grafikkarte gesendet werden sollen.

All diese „pro Objekt“ CPU-Auslastung ist ressourcenintensiv, so dass, wenn Sie viele sichtbare Objekte haben, sie sich addieren kann. Wenn Sie beispielsweise tausend Dreiecke haben, ist es viel einfacher für die CPU, wenn sie alle in einem Mesh liegen.

und nicht in einem Netz pro Dreieck (Summe von bis zu 1000 Netzen). Die Kosten für beide Szenarien auf dem Grafikprozessor sind sehr ähnlich, aber die Arbeit der CPU, tausend Objekte (statt eines) zu rendern, ist deutlich höher.

Reduzieren Sie die Anzahl der sichtbaren Objekte. Um den Arbeitsaufwand zu reduzieren, muss die CPU arbeiten:

Kombinieren Sie Objekte zusammen, entweder manuell oder mit Hilfe von Unity’s Draw Call Batching.

Verwenden Sie weniger Materialien in Ihren Objekten, indem Sie einzelne Texturen in einen größeren Texturatlas einfügen.

Verwenden Sie weniger Dinge, die dazu führen, dass Objekte mehrfach gerendert werden (z.B. Reflexionen, Schatten und Pro-Pixel-Lichter).

Kombinieren Sie Objekte so, dass jedes Netz mindestens mehrere hundert Dreiecke aufweist und nur ein Material verwendet wird.

für das gesamte Netz. Beachten Sie, dass die Kombination zweier Objekte, die kein Material teilen, Ihnen keinerlei Leistungssteigerung bringt. Der häufigste Grund für die Anforderung mehrerer Materialien ist, dass zwei Netze nicht die gleichen Texturen haben; um die Qualität zu optimieren.