Ich will viele kleine Texturen in möglichst wenigen großen Texturen unterbringen und dies auch möglichst effizient. Sodass möglichst wenig Platz verloren geht, um so viele kostspielige Texturwechsel wie nötig zu vermeiden.
Die kleinen Texturen haben dabei immer eine Kantenlänge von 2^n, können also auch rechteckig sein. Für die großen Texturen gilt im Prinzip das gleiche, diese sind jedoch in der Regel zusätzlich noch quadratisch.
Die kleinen Texturen liegen insgesamt zweimal vor. Einmal nach Breite sortiert und einmal nach Höhe.
Ich denke, die Lösung dieses Problems dürfte der Lösung in folgendem Thread etwas ähneln: viewtopic.php?t=5204
Wenn ich nun anfange, zuerst die großen Texturen reinzupacken, müsste ja ziemlich viel Platz dabei verschwendet werden, da, im Falle von nichtquadratischen Texten, relativ große Lücken entstehen, die man ja mit den kleinsten Texturen auffüllen könnte. Aber wie finde ich raus, wann die Lücken mit welchen Texturen aufzufüllen sind, um möglichst wenig Platz zu verschwenden?
Ach ja, halbwegs performant sollte das Ganze natürlich auch sein
Gruß,
Frase
_________________ "Für kein Tier wird so viel gearbeitet wie für die Katz'."
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Ich denke mal es wird drauf hinauslaufen, dass du dir merken musst was für Flächen du noch frei hast und dann die Texturen entsprechend in diese freien Flächen hineinzupacken. Habe mir da schon mal so am Rande Gedanken darüber gemacht, da ich so etwas für meine Fonts auch gebrauchen könnte aber da die Buchstaben aber alle mehr oder weniger eine ähnliche Größe haben habe ich sie nach höhe sortiert und zeilen hingepackt. Aber das ist natürlich für dich ungünstig.
Zum Merken der Größe. Sagen wir mal die Fläche ist leer. Also nimmst du dir eine Textur packst sie dort rein und das was übrig bleibt daraus kannst du 2 Flächen machen. Diese Flächendefinitionen sollten sich ruhig überschneiden. Also sie würden die maximale freie rechteckige Fläche angeben. Dann schaust du welche Textur da noch rein passen könnte. Und packst sie rein. Dann zerschneidest du deine Flächendefinitionen wieder. bzw entfernst die gefüllten Flächen etc. Zur Optimierung könntest du auch schauen welche von den passt am besten dort rein um so wenig wie möglich verschnitt zu haben.
Ach ja. Ich kenne das andere Thema nicht und das ist nur rein hypotetisch. Keine Ahnung obs überhaupt Ansatzweise sinnvolle Ergebnisse liefert und obs von der Geschwindigkeit überhaupt noch tragbar wäre. Okay. Da könnte man auch kleinstflächen auch noch ausfiltern. Also in diese Flächen in denen eh keine Textur passen würde (2x2) oder so. Das kann man anhand der Daten ja gut erkennen und dann erstellt man solche Platzhalter auch einfach nicht. So könnte man die Liste mit freien Flächen schon mal kleiner halten. Aber wie gesagt nur son Gedankengang von mir. Und ich weiß nicht ob ich dem heute vertrauen kann.
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Das ist doch wieder ein Rucksackproblem, oder? Wars nicht so, dass man alles ausprobieren musste um die ideale Lösung zu erhalten? Bei der Speicherverwaltung von Betriebssystem wird ein Ähnliches Problem gelößt: Wie bekomme ich möglichst viele Prozesse in den Hauptspeicher.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Mitglieder in diesem Forum: 0 Mitglieder und 18 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.