Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Do Jul 17, 2025 07:45

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Di Mär 28, 2006 14:40 
Offline
Forenkatze
Benutzeravatar

Registriert: Mi Okt 22, 2003 18:30
Beiträge: 1945
Wohnort: Närnberch
Programmiersprache: Scala, Java, C*
Hi,

mein Problem gestaltet sich wie folgt:

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'."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mär 28, 2006 15:29 
Offline
DGL Member
Benutzeravatar

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. ;-)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mär 28, 2006 15:58 
Offline
DGL Member

Registriert: Fr Dez 19, 2003 14:27
Beiträge: 107
Wohnort: Indianapolis, USA
http://www.blackpawn.com/texts/lightmaps/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mär 28, 2006 17:00 
Offline
Guitar Hero
Benutzeravatar

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mär 28, 2006 19:09 
Offline
DGL Member

Registriert: Sa Jan 22, 2005 21:10
Beiträge: 225
Den Algo aus Tokters Link verwende ich auch und kann mich eigentlich nicht beschweren.

_________________
[18:30] tomok: so wie ich das sehe : alles. was nich was anderes ist als nen Essay ist nen Essay

hi, i'm a signature viruz, plz set me as your signature and help me spread :)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Mär 29, 2006 14:14 
Offline
Forenkatze
Benutzeravatar

Registriert: Mi Okt 22, 2003 18:30
Beiträge: 1945
Wohnort: Närnberch
Programmiersprache: Scala, Java, C*
Jo der Algo schaut eigentlich ganz brauchbar aus ;) Werd es mal damit probieren ;)

Thx

_________________
"Für kein Tier wird so viel gearbeitet wie für die Katz'."


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 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.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.009s | 14 Queries | GZIP : On ]