Haradirki.de

Performance analysieren:

Hier will ich dir zeigen, wie man eigentlich kontrollieren kann, wie es um die Performance unserer Map steht. Natürlich kann man mit der FPS Anzeige (Frames per second, Bilder pro Sekunde) auch erkennen, wie es um die Performance steht, jedoch gibt sie sehr wenig Auskunft darüber, wieso hier jetzt ein Performance-Einbruch ist oder nicht. Daher will ich dir hier 3 Tipps zeigen, wie man eine Map auf die Performance hin gut analysieren kann:

Einsatz von GLVIEW:

Mit GLVIEW werden die Leaves in der Map dargestellt. Du solltest immer versuchen, die Leaves zu vereinfachen, ggf. durch den Einsatz von Hint-Brushs. Den Einsatz von mehreren Leaves kann man auch verhindern, wenn man World Brushs zu func_detail Entities macht. GLVIEW ist ein Compile-Parameter. Nachdem du ihn gestartet hast, sieht es ungefähr so aus:

Alles über GLVIEW und dessen Einsatz erfährst du hier: Thema GLVIEW

 

Die folgenden Befehle werden in die Console eingegeben. Die Console ist eine sehr nützliche Commando-Box. Hier lassen sich allerhand Befehle eingeben, wie z.B. Cheats. Die Console aktivierst du, indem du im Compile-Fenster "-console" eingibst:


(anklicken zum Vergrößern)

Nun startest du die Console und tippst "sv_cheats 1" (ohne die Anführungszeichen) ein. Nun kann es losgehen:

Einsatz von showbudget:

Der Showbudget Befehl zeigt dir im Spiel eine Art Übersicht über die Prozesse, die gerade die Rechnerleistung beanspruchen. Um diesen Befehl zu benutzen, musst du die Cheats aktiviert haben. Dazu gibst du in die Console ein "sv_cheats 1". Nun kannst du in die Console den Befehl "+showbudget" eingeben. Nun erscheint ein neues Fenster:

Um das Fenster im Spiel wieder zu schliesen, öffnest du einfach die Console und tippst nun "-showbudget" ein (ohne die Anführungszeichen).

Hier wollen wir nun mal ansehen, was da alles angezeigt wird:

1. Unaccounted

Hier wird dargestellt, wieviel Rechnerleistung für andere Programme verwendet wird, also z.B. Mp3-Player, Antivirus-Software, Firewall etc.

2. World rendering

Hier wird dargestellt, wie viel Rechnerleistung dazu verwendet wird, die Geometrie der World Brushs darzustellen. Um diesen Wert zu verringern, kannst du Hint Brushs und func_areaportal zur Hilfe nehmen, aber auch einfach die Brushzahl reduzieren hilft hier natürlich auch.

3. Displacement rendering

Gibt an, wieviel Rechnerleistung für die Darstellung von Displacements verwendet wird. Um diesen Wert zu verringern, kannst du einfach die "Power" des Displacements niedriger stellen.

4. Game

Gibt an, wie viel Rechnerleistung für Logic_entities und ähnliche Berechnungen verwendet wird. Um diesen Wert zu verringern, bleibt dir nichts anderes übrig, als solche Entities zu löschen. Du solltest nie mehr verwenden als notwendig.

5. NPCs

Gibt an, wieviel Rechnerleistung für die künstliche Intelligenz (A.I.) verwendet wird. Einzige Möglichkeit ist auch hier, NPCs zu löschen.

6. Server Animations

(nicht 100%ig sicher) gibt warscheinlich an, wie viel Rechnerleistung darauf verwendet wird, um Animationen auf dem Server darzustellen.

7. Client Animations

(nicht 100%ig sicher) gibt warscheinlich an, wie viel Rechnerleistung darauf verwendet wird, um Animationen auf dem Client darzustellen.

8. Physics

Gibt an, wieviel Rechnerleistung auf die Physik verwendet wird. Um diesen Wert zu verringern, solltest du entweder die props zu multiplayer props umwandeln oder einige löschen.

9. Static prop rendering

Gibt an, wieviel Rechnerleistung für alle prop_static verwendet wird. Um diesen Wert zu verringern, kannst du entweder Hints, ein func_areaportal oder func_occluders verwenden.

10. Other prop rendering

Gibt an, wieviel Rechnerleistung für alle anderen props verwendet wird. Einfach bei 9. nachschauen, was man tun kann um diesen Wert zu verringern.

11. Light cache

(nicht 100%ig sicher) Gibt warscheinlich an, wieviel Rechnerleistung darauf verwendet wird, die Lightstyles für die Lights zu berechnen.

12. Brush model rendering

Gibt an, wieviel Rechnerleistung für brush-basierende Entities verwendet wird. Einfach bei World Brushs nachsehen, wie man den Wert verringern kann.

13. Shadow rendering

Gibt an, wieviel Rechnerleistung zur Schattenberechnung benötigt wird. Um diesen Wert zu verringern, kannst du func_areaportal und Hint Brushs benutzen. Leider kannst du nicht func_occluder benutzen, da hier die Schatten der props immer noch berechnet werden.

14. Detail prop rendering

Gibt an, wieviel Rechnerleistung zur Darstellung von prop_detail verwendet wird. Solche Entitites werden übrigens nur dargestellt, wenn dein PC stark genug dafür ist. Also solltest du nur kleine, unwichtige Models über prop_detail erstellen. Um den Wert zu verringern, siehe bei 9. Static Props.

15. Particle/effect rendering

Gibt an, wieviel Rechnerleistung zur Darstellung von Partikel-Effekten benutzt wird. Um den Wert zu verringern, entweder Partikel-Effekte löschen oder die Dauer des Effekts verringern.

16. Ropes

Gibt an, wieviel Rechnerleistung zur Darstellung von Seilen benötigt wird. Der Wert kann verringert werden, indem man die Subdivisions der Seile verringert.

17. Dynamic light rendering

Half Life 2 ist nicht Doom3. Dynamisches Licht sollte sehr sparsam eingesetzt werden. Wenn du "Point_spotlights" in deiner Map hast, solltest du darauf achten, dass du die Flagge "no dynamic light" aktiviert hast, da es sonst auch als dynamischs Licht zählt.

18. Networking

Gibt an, wieviel Rechnerleistung für den Netzwerktraffic benötigt wird. Um diesen Wert zu verringern, solltest du den Traffic verringern, den deine Map produziert. Dazu gehört das Entity "prop_physics". Daher solltest du alle "prop_physics" zu "prop_physics_multiplayer" umwandeln. Übrigens gibt es hier immer einen kleinen Wert, selbst wenn du deine eigene Map auf deinen PC spielst.

19. Sound

Gibt an, wieviel Rechnerleistung für Sounds in deiner Map verwendet wird. Um den Wert zu verringern, einfach Sounds löschen.

20. VGUI

Gibt an, wieviel Rechnerleistung für jedes "Versatile Graphical User Interface" verwendet wird. Das sind z.B. die Menüs in Half Life 2, aber auch das HUD und auch das Showbudget-Fenster.

21. FileSystem

?

22. Prediction

?

23. Interpolation

?

24. Swap buffers

Gibt an, wieviel Rechnerleistung für Wasser Shader, Bumpmapping oder andere Shader verwendet wird. Hier solltest du entweder die Menge der Shader oder ihre Genauigkeit einschränken.

25. AINET

?

26. Occlusion

Gibt an, wieviel Rechnerleistung für func_occluder verwendet wird. Hier solltest du immer nachsehen, ob die Berechnung des func_occluder den Aufwand wert ist um dann ein paar Entities zu verstecken.

27. Overlays

Gibt an, wieviel Rechnerleistung für Overlays (auch decals) verwendet wird. Um den Wert zu verringern, einfach ein paar decals löschen. Übrigens könnte es auch sein, dass hier überlagernde Brushs und z-Fighting von Texturen auch zu einem erhöhten Wert beiträgt.

28. CLagCompensationManager

?

29. Cview-Render::render

?

30. 3D Skybox

Gibt an, wieviel Rechnerleistung die 3D-Skybox verbraucht. Wenn der Wert hier zu hoch ist, bleibt dir nichts anderes übrig, als Bestandteile der 3D-Skybox zu löschen.

 

 

Einsatz von mat_wireframe:

Mit diesem Befehl kannst du sehen, was die Engine im Moment alles darstellt. Es ist manchmal kaum zu glauben, was alles von der Engine dargestellt wird, obwohl der Spieler diese Sachen garnicht sehen kann. Dazu gibst du in der Console "mat_wireframe 1" (ohne Anführungszeichen) ein. Nun sieht es so aus:

Hier siehst du nun, dass ein ziemlich langer Teil des Ganges dargestellt wird, obwohl man ihn garnicht sehen kann. Um die Funktion wieder auszuschalten, öffnest du die Console und tippst ein "mat_wireframe 0" (ohne Anführungszeichen).

 

Einsatz weiterer Console Befehle:

Anschalten des Befehls   Ausschalten des Befehls   Funktion:
         
sv_cheats 1   sv_cheats 0   Schaltet die Cheats ein bzw. aus. Viele der Befehle hier benötigen die Aktivierung der Cheats, sonst funktionieren sie nicht. Du wirst aber in der Console darauf hingewiesen, wenn du die Cheats nicht aktiviert hast.
         
mat_leafvis 1   mat_leafvis 0   Erstellt ein Drahtgitter um das aktuelle Leaf.
         
ent_messages_draw 1   ent_messages_draw 0   Stellt die gesamten Aktivitäten von Input/Output der Entities in der Map dar. Es wird eine Linie dargestellt von dem Entity zu dem Zielentity.
         
mat_bumpmap 1   mat_bumpmap 0   Cheats müssen für diesen Befehl aktiviert sein!
Schaltet den Effekt der Bumpmaps an oder aus. Du solltest dann das showbudget Fenster aktivieren um zu sehen, wie sich die Performance deiner Map verändert.
         
mat_specular 1   mat_specular 0   Cheats müssen für diesen Befehl aktiviert sein!
Schaltet den Reflektiereffekt der Oberflächen an und ab. Siehe den Befehl mat_bumpmap 0/1
         
cl_showfps 1
cl_showfps 2
  cl_showfps 0   Zeigt die aktuellen FPS in der Map an. Der Befehl mit der Zahl 2 ist deutlich langsamer und daher besser zu lesen.
         
impulse 81       Cheats müssen für diesen Befehl aktiviert sein!
Ersetzt deine Waffen durch ein Set an reflektierenden Bällen. Nun kannst du testen, ob deine env_cubemaps funktionieren.

 

 

 

zurück zur Hauptseite

Half-Life 2 Hammer Tutorial, Copyright (c) 2005 Dirk "Haradirki" Marmann, erstellt mit Wordpad

Dieses Tutorial ist grundsätzlich Freeware und darf für den persönlichen Gebrauch weiterkopiert werden. Es darf allerdings NICHT ohne meine Einverständniss auf anderen Homepages als HTML-Datei oder zum Download angeboten werden. Es darf nichts hinzugefügt, verändert oder gelöscht werden. Weiterhin darf es nicht auf digitalen Medien, z.B. CD-Medien veröffentlicht werden, wenn ich nicht ausdrücklich meine Einverständniss dazu gegeben habe. Alle Rechte bleiben beim Autoren. Wird aus diesem Tutorial zitiert, währe ich sehr dankbar, wenn ihr dabei auf eine meiner beiden Homepages http://www.haradirki.de oder http://www.dead-in-bed.net hinweisst.

 

http://www.haradirki.de   http://www.dead-in-bed.net