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

Aktuelle Zeit: Mo Jun 17, 2024 09:35

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



Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Texelgenaue Texturkoordinaten
BeitragVerfasst: Di Mai 27, 2014 14:02 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Es kommt ja immer mal wieder auf, das Thema mit den Texturkoordinaten und mit den Filtern, besonders wenn es um Tilemaps geht.

Ich habe gerade mal einen Artikel geschrieben, der das Problem von drei Seiten beleuchtet und die unterschiedlichen Lösungen sowie ihre Probleme und Vorteile darstellt. Ich bitte um Feedback.

viele Grüße,
Horazont

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Texelgenaue Texturkoordinaten
BeitragVerfasst: Di Mai 27, 2014 16:20 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 14, 2013 21:17
Beiträge: 588
Programmiersprache: C++
Der Artikel ist gut und verständlich. Jedoch wird ihn niemand finden, wenn es keine anderen Artikel gibt, die auf ihn verlinken. Auch solltest du im Artikel selbst vielleicht noch den ein oder anderen Link platzieren (z.B. zu Mipmaps).

Warum steht in der Tabelle bei Mipmap-Kompatibilität/GL_NEAREST ein "—" statt eines Kreuzes? Mipmaps mit GL_NEAREST (na gut: wenn man es genau nimmt mit GL_NEAREST_MIPMAP_NEAREST) sind doch möglich.

_________________
So aktivierst du Syntaxhighlighting im Forum: [code=pascal ][/code], [code=cpp ][/code], [code=java ][/code] oder [code=glsl ][/code] (ohne die Leerzeichen)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Texelgenaue Texturkoordinaten
BeitragVerfasst: Di Mai 27, 2014 16:27 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7804
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Was mir fehlt ist so eine Aussage darüber was man nun eigentlich machen sollte. Der Artikel an sich beschreibt die Effekte, eventuell etwas knapp. Da sollten nochmal paar OpenGL Anfänger drüber lesen, ob sie alles mitbekommen.

Was ich noch gut Fände wäre, wenn du kurz noch die Begriffe Texturatlas und Tilemap beschreibst (in 2 kleinen Artikel). Links habe ich gesetzt. Also was ist es, warum macht man es, welche Formen gibt es (statische vs. generierte), worin unterscheiden sich beide. (Falls beide das gleiche sind, dann eventuell einen redirect)

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Texelgenaue Texturkoordinaten
BeitragVerfasst: Di Mai 27, 2014 18:19 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2622
Wohnort: Berlin
Programmiersprache: Go, C/C++
Ich hab da mal ne Frage zu Lösung 1.
Hast du beim testen x1 == w und y1 = h genommen, wenn ja, dann sollte es pixel perfekt sein.
Bild
Der Fehler der oft gemacht wird ist 0,0 bis 1,1 zu verwenden und auf das 8x8 Pixel Quad zu mappen.
Der Offset ist notwendig, damit es Pixel Perfekt wird, weil man sonnst durch Rundungfehler alles aber keine korrekten texel fetches bekommt.
Wenn ein Tile bei x0 = 4 anfängt und eine Breite von 4 Pixel hat, dann ist x1 = 8 und ab und zu wird wie bei array access aber mit -1 gearbeitet also x0 = 4 und x1 = 7. Das ist ein häufiger Fehler welcher auch beim Packen gemacht wird.

Ein weiterer häufiger Fehler kommt in Zusammenhang mit DXT, MipMaps und Atlanten.
DXT erzeugt eine MipMap Pyramide bis 1x1 Pixel, zwar enthält diese immer noch 4x4 Pixel aber das ist in dem Fall nicht so interessant.
Wenn man ein Atlas mit DXT verwendet, dann sollten Tilekanten immer ein vielfaches von 4 sein und entsprechend auch positioniert werden, sonnst werden Nachbarn beim nutzen mit rein gemischt und man sollte die Nutzung von Mipmaps bis dem Level beschränken, wo eines der Tiles 4x4 Pixel unterschreiten würde.

Am einfachsten ist, wenn man MipMaps garnicht erst verwendet, wenn man UI macht, Nearest Filter und Lösung 1 verwendet.

edit:
Schön, dass du die Lücke im Wiki erkannt und dich darum kümmerst *daumen hoch*

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Texelgenaue Texturkoordinaten
BeitragVerfasst: Di Mai 27, 2014 19:17 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Schonmal vielen Dank fürs Feedback.

glAwesome hat geschrieben:
Warum steht in der Tabelle bei Mipmap-Kompatibilität/GL_NEAREST ein "—" statt eines Kreuzes? Mipmaps mit GL_NEAREST (na gut: wenn man es genau nimmt mit GL_NEAREST_MIPMAP_NEAREST) sind doch möglich.
Wusste ich garnicht :) Dann sollte da wohl ein ✘ hin!

@TAK2004: Sorry, ich kann nicht zu 100% folgen.

Ich habe x0 = 64, y0 = 192, x1 = 128, y1 = 256 gesetzt und dann wie im Artikel beschrieben geoffsettet. Ist das nicht das korrekte Vorgehen für Lösung 1?

@Flash: Eine Pauschale Aussage kann man nicht treffen, man muss herausfinden, was einem wichtig ist. Deswegen gibts am Ende die Tabelle. Das habe ich jetzt mit einem stückchen Text verdeutlicht.

grüße,
Horazont

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Texelgenaue Texturkoordinaten
BeitragVerfasst: Di Mai 27, 2014 20:16 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2622
Wohnort: Berlin
Programmiersprache: Go, C/C++
Zitat:
@TAK2004: Sorry, ich kann nicht zu 100% folgen.

Ich habe x0 = 64, y0 = 192, x1 = 128, y1 = 256 gesetzt und dann wie im Artikel beschrieben geoffsettet. Ist das nicht das korrekte Vorgehen für Lösung 1?


Wenn das tile eine Breite und Höhe von 64 hat, dann ist es korrekt und es sollte kein matsch ergeben.
Ich hab dir mal ein Testfile angehangen, womit du an den uvs sehr einfach testen können müsstest.
Wenn dein Atlas größer war, kannst einfach in Gimp das Bild erweitern und dann als dds mit plugin exportieren, bzw. was für ein format du auch verwendest.

Das Grid erlaubt dir sehr einfach raus zu bekommen ob was im argen ist und der Border zeigt dir bleeding und falsche uv koordinaten.


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Texelgenaue Texturkoordinaten
BeitragVerfasst: Mi Mai 28, 2014 09:41 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Das Tile war 64×64 groß. Ist auch nicht verwunderlich, dass es matscht, schließlich ist das Rechteck das man aus der Atlastextur ausschneidet auch nur noch 63×63 groß, wenn man die Koordinaten um 0.5 verkleinert.

grüße

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Texelgenaue Texturkoordinaten
BeitragVerfasst: Mi Mai 28, 2014 19:57 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2622
Wohnort: Berlin
Programmiersprache: Go, C/C++
http://drilian.com/2008/11/25/understanding-half-pixel-and-half-texel-offsets/
Toller artikel zum thema halbe Texel und Pixel.

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 52 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:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.199s | 17 Queries | GZIP : On ]