Performance bei Kollisionsabfrage

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Gonger96.

    Performance bei Kollisionsabfrage

    Hallo allerseits,
    ich habe vor ca. 2 Jahren ein SFML-Projekt, aufgrund mangelden verständnisses für die Kollisionsabfrage eingestampft.
    Die damals einzige alternative wäre ein C&P-Code gewesen, aber der kommt bei mir allerhöchstens in Testprojekte, um zu verstehen was da geht.
    Um das Projekt wieder aufleben zu lassen arbeite ich grade an einer eigenen Kollisionsabfrage in VB.NET, die später in C++ umgeschrieben wird.

    Nun werfen sich mir ein Paar Fragen in Bezug auf Arbeitsspeicherbedarf und Performance auf.
    Also mein Plan ist, das sobald 2 Rectangles aufeinander treffen, ein Byte-Array der beiden Bitmaps generiert wird.
    Dann soll in dem Bereich des Rectangle.Intersect geprüft werden, ob beide Bitmaps ein Pixel gleichzeitig nutzen.
    Dazu hab ich eine Funktion geschrieben, die per Point(x,y) eine Checksumme der RGB-Werte, des jeweiligen Pixels in seinem Byte-Array berechnet.
    Die Collision wird ausgelöst, sobald die Checksummen beider Bitmap-Pixel > 0 sind.

    Wenn die Byte-Arrays aller Bitmaps direkt am Anfang generiert werden, würde sich der Bedarf im Arbeitsspeicher ja praktisch verdoppeln,
    aber die Perfomance wäre besser, da ja sofort die Checksummen geprüft werden können.
    Werden die Byte-Arrays bei bedarf geladen, könnte sich das bei größeren Bitmaps deutlich auf die Performance auswirken.

    Mich würde interessieren, wie man sowas am sinnvollsten Handled.
    Habt ihr da eventuell Vorschläge oder Ideen?
    Das Chaos beginnt mit komprimierter Ordnung (Steppenpferd 2019)
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!