Texture Wrapping in OpenGl

Benutzeravatar
Ronny
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 133
Registriert: 18. Nov 2005 14:33
Wohnort: IGD

Texture Wrapping in OpenGl

Beitrag von Ronny »

Ich hoffe, ich werde jetzt nicht falsch verstanden. Ich habe folgendes Problem im 2ten Programmierpraktikum.
Beim Spheremapping bekommen die Vertices um den 360 ten Längengrad herum für die Texturkoordinate s grob gesehen Werte im Bereich von 0.9 bis fast 1, bei knapp unter 360° und von 0 bis etwa 0.1 bei etwas über 360°(entspricht 0°). Wenn jetzt ein Dreieck aus Vertices besteht, die knapp unter 360° und knapp über 360° sind, wird fast die ganze Texture auf ein Dreieck abgebildet. Ich versuche das mal darzustellen:
0.9----360°-----0.1
| /
| /
| /
| /
| /
| /
| /
| /
| /
0.9/
Die Kommazahlen sind die s Koordinate der Vertices, wie sie in etwa bezüglich der 360° in der Mitte vergeben werden.
In Direct3D konnte man so einen Modus einstellen, dass die Zwischentexturkoordinaten nicht von 0.9 runter zur 0.1 interpoliert wurden, sondern von 0.9 zu 1.0 zu 0.1 wobei 1.0 der 0.0 entspricht. Das hiess da Texture Wrapping. Ich meine jetzt nicht so was wie
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);.
Wenn mich jemand verstanden hat, wäre es wirklich nett, wenn er mir hilft.

Benutzeravatar
Ronny
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 133
Registriert: 18. Nov 2005 14:33
Wohnort: IGD

Beitrag von Ronny »

Ohh, ich sehe, dass das Bild nicht so aussieht, wie ich wollte. Die Schrägstriche sollten die untere 0.9 mit der 0.1 verbinden, damit ein Dreieck entsteht.

Daniel Weber
Windoof-User
Windoof-User
Beiträge: 30
Registriert: 24. Okt 2006 19:05

Beitrag von Daniel Weber »

Geht es um Aufgabe 5 oder 7 ?

Benutzeravatar
Ronny
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 133
Registriert: 18. Nov 2005 14:33
Wohnort: IGD

Beitrag von Ronny »

Es geht um Aufgabe 6 und 7.

Daniel Weber
Windoof-User
Windoof-User
Beiträge: 30
Registriert: 24. Okt 2006 19:05

Beitrag von Daniel Weber »

Eine geschickte Möglichkeit ist, das Dreieck was über die Textur "herausragt" in zwei bzw. drei Dreiecke zu teilen, welche genau bis zum rand der textur reichen.

Benutzeravatar
Ronny
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 133
Registriert: 18. Nov 2005 14:33
Wohnort: IGD

Beitrag von Ronny »

Naja, so geschickt finde ich das nicht. Ist natürlich eine Möglichkeit. Es wäre aber ein doch recht aufwendiger Präprozess notwendig.

Benutzeravatar
Ronny
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 133
Registriert: 18. Nov 2005 14:33
Wohnort: IGD

Beitrag von Ronny »

Wenn ihr was an meiner Frage nicht versteht, könnt ihr auch ruhig nachfragen. Oder ist das Problem bei euch garnicht aufgetreten?

Benutzeravatar
Ronny
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 133
Registriert: 18. Nov 2005 14:33
Wohnort: IGD

Beitrag von Ronny »

Sieht das bei euch beim Sphere- oder Cylinder-Mapping nicht so aus?

Bild

abtoom
Windoof-User
Windoof-User
Beiträge: 36
Registriert: 17. Nov 2005 14:41
Wohnort: Erbach

Beitrag von abtoom »

Doch, ist schon richtig so.
Wir hatten damals eine Lösung gefunden, die beim Globus gut funktioniert hatte:
Wir haben geguckt, ob sich an der Reihenfolge des Dreiecks was geändert hat. Also standardmäßig haben wir ein 3Eck ABC und nach dem Mapping am Rand wurde dann ACB draus. Wenn dies der Fall war, kann man dementsprechend die Texturkoords korrigieren.

Antworten

Zurück zu „Archiv“