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

11

28.07.2011, 15:44

Soweit ich dich verstanden habe, weist du Texturen beim Laden deiner Objekte über ein Dictionary zu. Da das ja wahrscheinlich nur beim ersten Laden stattfindet, ist dieser Teil deines Systems sicherlich nicht Performance problematisch und viel schneller als mit einem Dictionary wird es eh nicht werden. Aber das weißt du ja glaube ich auch selbst :).
Du könntest ja mal überlegen die Animationen als Kombination aus Texturkoordinaten (pro Sprite-Frame) und Textur zu speichern. Dann kannst du ohne Probleme jede Form von Spritesheet benutzen und hast volle Flexibilität. Ein Generator/Editor wäre dafür natürlich sinnvoll. Wenn deine Sprites nicht riesige Dimensionen haben, könntest du wahrscheinlich deine ganzen Spritessheets gleichzeitig für den Fragmentshader setzen und so ohne Texturwechsel das meiste rendern können. Man könnte auch mal schauen ob dazu 3D Texturen vielleicht geeignet sind (um mehrere Spritesheets zu schichten).

BTW wenn du XNA benutzt und das ganze evt. auch bei XBLIG veröffentlichen willst, kannst du eigentlich ohne schlechtes Gewissen soviel du möchtest hardcoden, da du von einer flexiblen Struktur ja nur profitierst, wenn a) deine Compilezeiten besonders lang sind (sollte bei C# eigentlich nicht das Problem sein) und b) du mit mehreren Personen am Projekt arbeitest, die im Projekt den Austausch/das Einstellen von Ressourcen ohne neu zu kompilieren vornehmen können müssen. Letzteres ist bei XNA so wie ich es erlebt habe für XBLIG Projekte sowieso nicht wirklich möglich.

Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von »Chromanoid« (28.07.2011, 16:03)


12

28.07.2011, 18:23

ja ich denk für animatiionen wird ein spritesheet wirklich das gescheiteste sein.
werd das mal so umsetzen.

ja zur zeit lade ich alles am start, dann werd ich mir die optimierungen sparen.

und naja. ich möchte trotzdem einen sauberen und schönen code schreiben und ich finde, dass hardcoded values da nicht dazugehören.
btw. ich hab noch nicht drüber nachgedacht es zu veröffentlichen. eigentlich hab ich das ganze projekt gestartet um mich mal gscheit in die ganze sache einzuarbeiten...

lg

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

13

28.07.2011, 21:18

Das ist *nicht* hardcoded! Aber wenn du innerhalb des Rendering-Calls Map-Lookups machst, dann ist das unnütze Verschwendung von Rechenleistung. Hardcoded ist etwas GANZ anderes, aber sicherlich *nicht* ein Attribut. Als Student der Informatik solltest Du diesen Unterschied kennen.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

14

28.07.2011, 21:49

Soweit ich ihn verstehe macht er doch gar keine Map-Lookups beim Rendern, sondern beim ersten Laden der Objekte.
Zumindest schließe ich das hieraus:
ja zur zeit lade ich alles am start, dann werd ich mir die optimierungen sparen.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

15

28.07.2011, 21:56

Laden kann man am Start und trotzdem Map-Lookups beim Render nutzen:

Zitat

Wenn ich dann z.b. einen neuen Block erstelle, dann holt sich der Block aus der Spritelist seine passende Textur.

Ich weiß nicht, was genau er macht, das hat er ja noch nicht konkretisiert. Aber wenn er Attribute für hardcoded hält, dann hab ich arge Zweifel an seinem Entwurf.
Auch sagt "Laden am Start" nichts darüber aus, ob er Spritesheets nutzt (was er ja nicht tut).
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

16

28.07.2011, 23:15

Ich glaube dein Vorschlag wurde einfach falsch verstanden.
Auch sagt "Laden am Start" nichts darüber aus, ob er Spritesheets nutzt (was er ja nicht tut).
Das hat ja auch niemand behauptet. Aber du hast recht, wenn sollte das vom OP konkretisiert werden :)

17

29.07.2011, 08:09

@BlueCobold: is mir schon klar, dass das was du vorgeschlagen hast nichts mit hardcoded values zu tun hat. Nur hab ich erst nach einiger zeit drübernachdenken und mehrmals durchlesen wirklich verstanden was du gemeint hast.

Während des renderns mach ich keine lookups in irgendwelchen listen. Bei initialisieren passiert das ganze, also bevor irgendwas sichbar ist.

aber ich danke euch nocheinmal für euere hilfe. Ich werde auf Spritesheets "umstellen".

lg

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

18

29.07.2011, 15:14

Na dann is alles prima. :)
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Werbeanzeige