-
Ehrengarde
Performance Vorteile durch SRC_RECT oder multiple Bitmaps
Guten Abend.
Wie schon einige Male zuvor wage ich auch heute wieder das gesammelte Wissen dieser Community für meine Zwecke zu nutzen.
Es geht einmalmehr um die Performance von Scripten, speziell um die Performance von Sprites, charactersprites mit multiplen Animationen.
Ich wollte nur wissen ob es für die Performance besser ist eine große Bilddatei zu erstellen, als das Bitmap des Character_Sprites zu wählen und dann via SRC_Rect teilausschnitte darstellen zu lassen um durch die Animationen zu schalten, oder sehr viele sehr kleine Bilddateien zu verwenden und stets einzelne Animations Abschnitte als ganzes Bild darstellen zu lassen.
Wir gehen dabei davon aus, dass ein Character in meinem Projekt eine große Anzahl von Animationen besitzen würde.(15+ Spalten, 4+ Reihen für jede)
Also lautet die Frage konkret:
Ist es aufwändiger für die CPU das Bitmap des Sprites stets zu einer anderen Bilddatei verweisen zu lassen oder nur eine gigantische Bilddatei zu verwenden und jederzeit nur den Abschnitt ein zu blenden der benötigt wird via src_rect.set?
Vielen Dank im Vorraus für alle eure Antworten.
Cornix.
-
Krieger
Probiers aus ^^ Mach einfach ein paar Stresstests und vergleiche die Framerate.
Ich glaube aber nicht, dass das viel ändert. Bitmaps sind ja letztlich nur die Tabellen mit den Rohpixel-Daten. Die werden so oder so intern geblittet und zusammengeschnitten. Da dürfte es egal sein ob du ein großes oder viele kleine nimmst.
Aber sicher kann man da nur sein, wenn man es ausprobiert und vergleicht.
-
General
Ich hab' die Variante mit den vielen kleinen Bitmaps nicht ausprobiert. Ich verwende für meine animierten Battler die erste Variante und bin bis jetzt nicht wirklich auf irgendwelche Performanceprobleme gestoßen. Fürs Datenmanagement ist es aber sicherlich einfacher ein großes Bitmap zu nehmen.
-
Ritter
Ein anderer Punkt:
Viele kleine Dateien erzeugen mehr Overhead als eine große Datei, da jede kleine Datei ihren eigenen Header besitzt. Benutzt du also viele kleine Dateien anstatt einer großen, wirst du etwas mehr Arbeitsspeicher verbrauchen.
Auch könnte die Ladezeit bei Spielstart unter vielen kleinen Dateien minimal leiden, da hier die Chance größer ist, daß diese stark verteilt auf der Platte liegen, welche somit mehr arbeiten muss (und Festplattenzugriff ist nunmal langsam).
Ob diese Sachen allerdings bei heutigen Rechnern und der geringen Datenmenge eines Makerspiels (du wirst kaum mit mehreren Gigabyte Grafikdaten hantieren, oder?) einen spürbaren Unterschied machen darf ruhig bezweifelt werden.
Wie Burrito aber erwähnt hat ist das Managment bei einer großen Datei einfach sehr viel einfacher. Solange die Perfomance deines Spiels nicht gerade genau deswegen im Keller ist würde ich hier wirklich zu der Alternative greifen, die das Leben für dich als Ersteller und Scripter einfacher macht. Und das ist nunmal eine große Datei pro Animation bzw. vielleicht sogar pro Figur.
-
Ehrengarde
vielen Dank für all eure Antworten. Ich werde einzelne Bilddateien verwenden.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln