Registriert: Mi Dez 15, 2004 20:36 Beiträge: 454 Wohnort: Wien, Österreich
Willkommen im Forum.
Jedem Vertex kann man dieverse Eigenschaften zuordnen. Eine von denen sind Texturkoordinaten. Um einem Vertex eine Texturkoordinate zuzuordnen gibt man zuerst die Texturkoordinaten ein und dann das zugehörige Vertex. So in etwa:
Code:
glTexCoord2f(1,1); glVertex2f(-1,-1);
In deinem Beispiel wird nur die Letzte von glTexCoord als "gültige" Angabe anerkant und vermutlich allen Verticen zugeordnet.
_________________ "Meine Mutter sagt : 'Dumm ist der, der Dummes tut'." - Forrest Gump
Registriert: Fr Mai 14, 2004 18:56 Beiträge: 804 Wohnort: GER/OBB/TÖL-WOR/Greiling
EDIT: Dumpfsinn geschrieben...
wie willst du es den gekachelt haben? mit festerkachelanzahl oder mit fester kachelgröße?
einfach als erste koordinate "0|0" und als zweite "Anzahl der Kacheln|Anzahl der Kacheln" ist für feste kachelanzahl geeignet.
wenn die größe der kacheln fest sein soll, musst du wohl noch ein bisschen rechnen....
PS: wäre das nicht das ideale einsatzgebiet für einen einfachen shader?
_________________
"User Error. Replace User and hit Continue."
Zuletzt geändert von luketheduke am So Jul 17, 2005 13:31, insgesamt 1-mal geändert.
Registriert: Fr Mai 14, 2004 18:56 Beiträge: 804 Wohnort: GER/OBB/TÖL-WOR/Greiling
tja, wenns n konkaves ploygon ist, dann wird das ja erst in (mindestens) zwei polygone aufgeteilt. du musst dann für jedes vertex die richtigen texturkoords berechnen und einstellen. probier es erstmal mit einem quad, und probier da rum, wie es sich auswirkt.
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Wenn du mathematisch etwas beschlagen bist, dann kannst du sicherlich auch die Vertex-Koordinaten in den Texturraum so transformieren, dass du die passenden Texturkoordinaten erhälst. Jedenfalls, wenn die Textur nich gekachelt werden soll.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Muss ich vielleicht den Vertex oder die Texturkoordianten für jede Koordiante des Polygons zuweisen?
Wie übergibst du bisher die Koordinaten des Polygons?
glVertex ist ja gerade eines der Kommandos, mit dem mit dem man Koordinaten an OpenGL übergeben kann, wenn man davor mit glTexCoord eine Texturkoordinate festlegt, wird diese dann für den mit glVertex übergebenen Schnittpunkt verwendet. Wenn man mehrere glTexCoord Kommandos direkt hintereinander aufruft, ist das praktisch sinnlos, da die vorhergehende Kommandos jeweils von den nachkommenden Kommandos überschrieben wurden.
Registriert: Di Dez 02, 2003 12:47 Beiträge: 300 Wohnort: Marburg
Irgendwie geht die Diskussion etwas auseinander ohne konkretes Problem habe ich das Gefühl
Um zu gucken ob im einfachen fall alles funktioniert solltest du vieleicht wirklich erstmahl nen einfaches quad zeichnen und das den so:
Code:
glbegin(gl_quad);
glTexCoord2f(1,1); glVertex2f(-1, -1);
glTexCoord2f(1,0); glVertex2f(-1, 0);
glTexCoord2f(0,1); glVertex2f(0, -1);
glTexCoord2f(0,0); glVertex2f(0, 0);
glend;
Und ansonsten:
1. Wenn deine "oberfläche" aus vielen dreiecken besteht, musst du in der Tat für alle eckpunkte der dreiecke die richtigen Texturcoordinaten berechnen (sollte in 2d sehr einfach sein)...
2. Wenn du auf ein Dreieck/Viereck/Polygon die textur merfach haben willst, musst du texturcoordinaten GRÖßER 1 eingeben:
Code:
glbegin(gl_quad);
glTexCoord2f(5,5); glVertex2f(-1, -1);
glTexCoord2f(5,0); glVertex2f(-1, 0);
glTexCoord2f(0,5); glVertex2f(0, -1);
glTexCoord2f(0,0); glVertex2f(0, 0);
glend;
Das wäre glaube ich das, was mann klasisch unter kacheln versteht...
_________________ Nothing, oh sweet nothing,
today we are doing nothing at all...
http://www.geo-progs.de
Registriert: Di Dez 02, 2003 12:47 Beiträge: 300 Wohnort: Marburg
Irgendwie geht die Diskussion etwas auseinander ohne konkretes Problem habe ich das Gefühl
Um zu gucken ob im einfachen fall alles funktioniert solltest du vieleicht wirklich erstmahl nen einfaches quad zeichnen und das den so:
Code:
glbegin(gl_quad);
glTexCoord2f(1,1); glVertex2f(-1, -1);
glTexCoord2f(1,0); glVertex2f(-1, 0);
glTexCoord2f(0,1); glVertex2f(0, -1);
glTexCoord2f(0,0); glVertex2f(0, 0);
glend;
Und ansonsten:
1. Wenn deine "oberfläche" aus vielen dreiecken besteht, musst du in der Tat für alle eckpunkte der dreiecke die richtigen Texturcoordinaten berechnen (sollte in 2d sehr einfach sein)...
2. Wenn du auf ein Dreieck/Viereck/Polygon die textur merfach haben willst, musst du texturcoordinaten GRÖßER 1 eingeben:
Code:
glbegin(gl_quad);
glTexCoord2f(5,5); glVertex2f(-1, -1);
glTexCoord2f(5,0); glVertex2f(-1, 0);
glTexCoord2f(0,5); glVertex2f(0, -1);
glTexCoord2f(0,0); glVertex2f(0, 0);
glend;
Das wäre glaube ich das, was mann klasisch unter kacheln versteht...
EDIT: SORRY, da kam gerade "seite kann nicht gefunden..." , da habe ich einmal zurück und noch mal auf posten
_________________ Nothing, oh sweet nothing,
today we are doing nothing at all...
http://www.geo-progs.de
Das Problem kenne ich, passiert mir hier auch öfters!
_________________ Shareholder und Leitender Entwickler bei Pipedream-Games.
Zitat: Siehst du diesen Park da unten? Jeden Tag lernen sich darin Menschen kennen und verlassen einander. Und du hast dein ganzes Leben Zeit darin zu gehen.
sorry das ich so lang nix von mir hab hören lassen. Ist inzwischen nicht mehr dringen , würde das nun aber doch gerne noch hinbekommen.
Also. Die Koordinaten der Polygone hab ich alle, da ich die vorher festlege und in ein Array speicher. Wenn ich das jetzt richtig verstanden habe, muss ich in diesem Code:
Code:
glTexCoord2f(5,5); glVertex2f(-1, -1);
glTexCoord2f(5,0); glVertex2f(-1, 0);
glTexCoord2f(0,5); glVertex2f(0, -1);
glTexCoord2f(0,0); glVertex2f(0, 0);
jeweils bei glVertex2f die Texturkoordinaten errechnen und für jede Koordinate dann angeben? Aber eigentlich müsste doch wenigstens ohne Änderung an obigen Code die Textur schon über das gesamte Polygon gestretcht werden oder? Das passiert nämlich leider auch nicht..
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.