Laden...

Texturqualität in OpenGL erhöhen

Erstellt von userid11997 vor 12 Jahren Letzter Beitrag vor 12 Jahren 1.518 Views
U
userid11997 Themenstarter:in
400 Beiträge seit 2008
vor 12 Jahren
Texturqualität in OpenGL erhöhen

Moin,

giebt es eine Möglichkeit die Texturgenauigkeit in OpenGL zu erhöhen, ohne die Größe der Textur zu verändern?

Wie auf dem Screenshot zu sehen "zieht" sich die Textur doch arg am unteren Gebirgsrand, sodass starke Verstreifung entsteht.

Die Map wird mit einer TriangleStrip gezeichnet und die Dreiecke haben jeweils einen Abstand von 1 floating-Einheiten. Das Gebiet an sich misst 256x und die Textur 512x

Wäre für jegliche Hilfe, die das Resultat optisch verbessern sehr dankbar.

Z
403 Beiträge seit 2007
vor 12 Jahren

Ich denke das du die Normale jedes Vertex berechnen musst.

S
753 Beiträge seit 2006
vor 12 Jahren

Hallo,

dumme Frage: Wie ist das gemacht: Sind auf die Geometrie einheitlich UV Koordinaten gemappt worden? Quasi in einer Ecke 0,0 und in der anderen 1,1 ?
Wenn ja, dann gehts nicht besser, weil du einen relativ kleinen Bereich der Textur auf eine große Fläche ziehst. Da gibts dann entweder die Möglichkeit, die Texturgröße zu verändern oder ein asymmetrisches UV Mapping vorzunehmen, quasi dort, wo der Gebirgszug durch vertikale Höhe mehr Fläche einnimmt, eine Textur zu erzeugen, bei der mehr Daten für diese Stelle vorhanden sind und dann die UV-Koordinaten in diesem Bereich so verändern, dass an der Stelle mehr Textur pro Fläche existiert.
Das ist aber extremes gefrickel und ich würde eher überlegen, ob man mit Multitexturing da noch auf das Gebirge eine höhere Textur legt.

Edit: TheGear: Was hat das mit den Normalen zutun? So wie ich das sehe, ist eine 2D Textur auf ein 2D Rechteck gemappt worden und dann wurden die Vertices des Rechtecks in die Z Achse gezogen um das Gebirge zu simulieren, mit dem Ergebnis, dass die Menge Texel pro Fläche an Bereichen mit größeren Z Werten einfach kleiner ist

Life is a short

Z
403 Beiträge seit 2007
vor 12 Jahren

Du has Recht, die Normale wird u.a. für die Beleuchtung ausgerechnet...
hab da was durcheinander geworfen.

U
userid11997 Themenstarter:in
400 Beiträge seit 2008
vor 12 Jahren

Danke für die Antwort. Sicherlich habe ich die Texturkoordinaten so berechnet, dass die obere linke Ecke die Koordinaten 0,0 und die untere rechte Ecke 1,1 hat und dazwischen eben (1.0f / size) * size.

Ich habe gerade allerdings gesehen, dass die Textur an der entsprechenden Stelle ebenfalls schon Streifig ist. Also liegt es an der schlechten Texturqualität an sich.

U
userid11997 Themenstarter:in
400 Beiträge seit 2008
vor 12 Jahren

Mit anderer Textur sieht das Ganze schon besser aus.
Bitte nicht an den Portalen stören.