Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

31.08.2004, 16:30

Performance Optimierung

Welche Algorithmen nutzt ihr um euer Spiel zu optimieren und die FPS selbst bei großen Außenlevels unten zu halten, und welche sind eurer meinung nach am effektivsten?
(Stichwörter: Frustum Culling, LOD, Hirachien jeglicher Art, Occlusion Culling, ... was weiß ich was es da noch gibt... :roll: )

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

2

31.08.2004, 16:54

Also ich würde sagen ehe man algo nutzt sollte man die Microsoft optimierungsvorschäge beachten und erst dann mich sichtbarkeite sachen rumquälen.

3

31.08.2004, 16:56

Naja, recht viel mehr als BackfaceCulling bietet Microsoft ja nicht an oder???

Außerdem sollte man ja so wenig polygone wie möglich an die Grafikkarte schicken...

Patrick

Alter Hase

Beiträge: 1 264

Wohnort: Düren

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

4

31.08.2004, 18:14

Wozu sollte Microsoft den noch mehr anbieten?

Achja so gehe ich vor für Außenlevels (Terrain) und auch übergänge von Terrain zu primitiven Indoor:
- Octree
- Frustumculling
- CLOD (3 Stufen max, kein ROAM und so, einfache überspringungstechnik [perfekt für outdoor])
- Scenemanager
evtl. Occlusionculling (aber net so besonders)

Bei Hirachien wie z.B. im Scenegraph sollte man es nicht übertreiben (overhead).

Was mir als Tipps weiterhin einfällt sind:
- Ordne die Meshs und Polygone nach Texturen! Damit du nicht unnötige switchs über den Bus jagst.
- Ordne weiter hinab zu Renderstates (Rendere nur alles in Alpha das auch alpha braucht, ansonsten AUS damit)

Zu algos fällt mir das ein:
- Ein BSP ist für Kollisionsabfrage das beste was du haben kannst! Octree ist zu lam dafür, genau wie quadtree oder Binärer Baum.
- "Perfekte" Formen (Sphere und Box) zu testen sind schneller als unnötiges testen von Triangles.

Könntest sog. einen SpherenOctree machen, Große Sphere und dann immer kleiner bis auf Dreiecksebene, aber das wäre bissel übertrieben, den boxen sind auch schnell zu testen ;)

unnötige casts seinlassen sind auch hilfreich.

Nimm dir am besten einen Block und schreibe auf wie du dein Code-Design ordnest und verknüpfts, denn Dein Speed hängt von der Effektiven umsetzung deines Code-Desings ab.

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

5

31.08.2004, 18:18

Zitat

- Ein BSP ist für Kollisionsabfrage das beste was du haben kannst! Octree ist zu lam dafür, genau wie quadtree oder Binärer Baum.


Ähm sry Master, aber ist binary-space-partition nicht das selbe, wie ein binärer Baum?

Patrick

Alter Hase

Beiträge: 1 264

Wohnort: Düren

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

6

31.08.2004, 18:22

jain. :) sie ähneln sich unterschieden sich jedoch.

Ein BSP arbeitet mit Konvexen Polygonen während ein Binärer Baum einen Node und einen Leaf hat, beidem das Leaf ein Triangle ist oder eine sonstige information.

Klar beide sind fast das selbe. aber der unterschied machts ;)

edit: achja hab was in die FAQ gestopft:
http://www.scherfgen-software.net/forum/viewtopic.php?t=2368

7

31.08.2004, 18:34

Zitat

Welche Algorithmen nutzt ihr um euer Spiel zu optimieren und die FPS selbst bei großen Außenlevels unten zu halten
Um die FPS unten zu halten, benutz ich immer das Brute Force-Verfahren ;D :P

Ich fang immer bei der Mathe-Bibi an. Die werden am meisten gebraucht und wenn die lahm ist, Hilft auch sonst nichts. Danach werden dann Techniken wie LOD (alle Varianten) und die verschiedenen Culling-Verfahren verwendet (BSP, QuadTree, Portal Rendering usw.) Halt was am besten past und was man auch umsetzen kann.

BackFace-Culling ist zwar auch ein Algorithmus, aber wer das nicht verwendet ist selber schuld ;)
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

8

01.09.2004, 08:03

Also ich selbst benutze derzeit folgende Algos:

- ROAM-Map mit
- Frustum Culling
- Level of Detail

das haut schon recht gut hin ... möchte aber noch folgende sachen implementieren um noch mehr FPS rauszuholen:

- Continuous Level of Detail
- Occlusion Culling mit der Direct3DQuery (oder so)

für meine statischen Objekte werd ich noch folgende Algos implementieren:
- Octrees (ich hoff die sind nicht zu langsam) mit
- Frustum Culling
- Level of Detail
- Continuous Level of Detail

bei den Herumlaufenden Objekten muss ich mir noch was überlegen... aber da wirds wahrscheinlich auch einen Octree nehmen und die Objekte verschiedene Nodes zuweiße in denen sie sich bewegen können/dürfen/sollen :wirbel:

Was anderes fällt mir zum managen der Objekte auch nicht ein...

Werbeanzeige