ich weiß... eigentlich sollte ich das wissen *g* Aber irgendwie habe ich mich noch nie damit beschäftigt und irgendwie brauchte ich es auch nochnie...
Ich habe eine 3000x3000 textur die ich in mehrere 256x256er aufteile.. die vielen kleinen Texturen stelle ich dann auf mehreren Quads wieder so dar, das im endeffekt wieder das 3000x3000 große bild zu sehen ist im Viewport..
Die sache ist jetzt die, das ich zwischen den einzelnen Quads kleine seams sehe.. also kanten...
Wie bekomme ich die weg??? Bzw.. mag mir jemand kurz erklären (oder evtl weiß wer ne gute erklärung irgendwo) was die einzelnen parameter Wrap S/T und Min/Mag Filter machen???
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Ich denke ich weiß was du meinst. Habe das auch gerade mal ausprobiert. Ich denke mal ich habe ne Idee wie man es beheben kann.
Was passiert da eigentlich genau? OpenGL Filtert die Texturen und je nach eingestelltem Wrap fährt er auf der anderen Seite der Textur fort (repeat) oder bleibt stehen und zieht die letzte Reihe in die Länge (clamp_to_edge). Und wenn man eine fließende Form (komplexes Bild) erhalten möchte sind beide Resultate nicht besonders gut geeignet. Vor allem rühren die Probleme daher, dass OpenGL in der Textur nicht weiß wie es weiter gehen soll.
Deswegen mein Vorschlag. Verwende als erstes 512x512 Texturen und benutze davon lediglich 510x510. 1 Pixel als Rand wird nicht mit dargestellt aber dennoch gefüllt. Du würdest sozusagen die Texturen ein Pixel überlappen.
Am Rand der Bildes kannst du das Pixel mit benutzen oder du musst die jeweils letzte Pixelreihe oder Spalte verdoppelst. Anderfalls würden Filterunschönheiten entstehen. Filterunschönheiten, da er beim Filtern auch auf das nächste Pixel zugreifen wird und wenn das schwarz wäre würde ein "dreckiger" Rand entstehen. Was normal mit clamp_to_edge verhindert würde. Hier aber nicht funktionieren würde, da wir uns nicht am Rand befinden würden.
Dieser "dreckige" Rand müsste bei dir jetzt auch schon existieren. Und zwar Links und Unten oder Oben (je nach Texturausrichtung).
Klar ist das ein wenig speicheroverhead. Deswegen aber auch 512x512 Texturen. Dann wäre es geringer. Außerdem wüsste ich nicht wie man die Filterung sonst austricksen könnte.
PS: Beim Überlappen meinte ich lediglich die Texturen! Die Flächen aus denen du dein Bild zusammen setzt sind 510x510 Pixel. Die Texturen würden von 1 bis 510 auf den Flächen liegen.
Ich hoffe das war noch irgendwo verständlich wie ich das meinte?
jap war verständlich.. nur, muß ich dann die UV Koordinaten irgenwie auch von 0.01 bis 0.99 oder so machen oder clipt OpenGL generell das äußerste Pixel der Textur weg???
Au'revoir,
Aya~
PS: Was genau ist eigentlich MipMapping??? Weil ich muß das Bild so darstellen wie es wirklich ist, sprich wie es z.B. Photoshop auch darstellen würde.. mipMapping brauche ich dabei doch garnicht, oder?
Ähm. Wie jetzt. Genau so? Also glOtho und ein Pixel der Textur entspricht genau einem Pixel auf dem Bildschirm? Wenn ja, dann vergiss was ich oben erzählt habe und deaktiviere einfach das Filtering. Dann kannste auch die Textur komplette benutzen. Allerdings mit clamp_to_edge. Das mache ich bei meinen 2D Sachen ständig.
OpenGL Clipt normal keine Pixel. Wenn man eine Textur filtert, dann möchte er auf benachbarte Pixel zugreifen, wenn diese nicht existieren aber zwecks Weichzeichner existieren müssten, dann gibbet Unschönheiten. Und ja wenn du Filtern möchtest (musst), dann musst du mit dem Trick arbeiten und die Koordinaten auch entsprechend anpassen. Aber die Werte würde ich Haar genau ausrechnen verwenden.
PS: MipMaps brauchst du bei 1:1 Darstellungen nicht.
Mipmaps sind bei 1:1 Darstellungen aber sehr hilfreich um zu überprüfen, ob auch wirklich nichts gefiltert wird. Denn selbst wenn man alle Filter anhat, die nur irgendwie gehen, wird nichts gefiltert, wenn die Textur 1:1 abgebildet wird.
Noch einfacher zum Überprüfen: Bastel dir mit Photoshop eine 512er Textur die ein Drahtgitter darstellt. Also mit einem Muster gefüllt ist, bei dem ein Pixel Scharz ist, der nächste Weiß, der nächste Schwarz... Einfach abwechselnd. Wenn du das gefiltert wird, erkennt man an der gefilterten Stelle einen grauen Schleier. Das hilft ungemein
_________________ "Für kein Tier wird so viel gearbeitet wie für die Katz'."
Mitglieder in diesem Forum: 0 Mitglieder und 7 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.