Frage zur Performance



  • Wie macht man das bei einem Flugsimulator. Wenn mehrer Flugzeuge duch die Gegend fliegen. Ich müsste doch für alle Objekte schauen ob diese miteinander kollidieren oder ob einer von einer Rakete getroffen wurde. KI kommt noch hinzu. Bodenfahrzeuge ect. Das muss doch den Prozessor sehr belasten.



  • ja



  • Um das ganze zu vereinfachen, könnte man den Luftraum in würfelförmige Sektoren unterteilen. Dann musst du nur noch wissen ob mehrere Flugzeuge im selben Sektor sind - Und wenn ja, prüfen ob sie miteinander kollidieren.
    Die Information welches Flugzeug in welchem Sektor ist, musst du natürlich ständig erneuern während das Flugzeug durch die Gegend fliegt.


  • Mod

    bei volumes deren größe nicht wirklich bestimmbar ist und auch noch hoch 3 sind, könnte das sehr in speichermangel und sonstigen problemen enden (z.B. wie groß ds volume,welche tesselierung..)

    du könntest dir für jedes objekt merken in wieviel zeit frühestens eine kollosion mit einem anderen objekt ansteht und dann prüfst du bei jedem durchlauf, ob diese zeit schon erreicht wurde und berechnest erst dann die ganzen möglichen kollisionen und wieder die zeit bis zur nächst möglichen kollision. gerade bei flugsimulationen, bei denen kleine objekte weit auseinander sind und mit eine vorgegebenen maximalgeschwindigkeit bewegt werden, ist sowas einfach und effektiv.

    sogar im worst case solltest du im __durchschnitt__ für jedes flugzeug ne sekunde zeit bis zur nächsten berechnung haben, was selbst bei 1000 objekten noch respektabel laufen sollte.

    rapso->greets();


Anmelden zum Antworten