Hallo zusammen,
ich habe folgendes Problem und was will ich auch einer tga ein bestimmten Bildabschnitt rausholen und aufkleben!
(Die Bildabschnitt sind in unterschiedlichen größen im gleichen tga.file)
Ich habe es wie folgt probiert, aber dieser Bildabschitte ist leider nicht nur einfach drauf sondern gleich mehr fach!
Aber warum? Was denke ich da falsch?
Registriert: Sa Mai 04, 2002 19:48 Beiträge: 3830 Wohnort: Tespe (nahe Hamburg)
TexCoord erwartet einen Wert zwischen 0 und 1. Nimmst Du einen größeren Wert wird die Textur verwendet und gekachelt. Du mußt also auf eine entsprechende Fließkommanstelle umrechnen. Ist deine Textur 100 Pixel groß und Du benötigst 10 Pixel davon, wäre dies halt 0.1
_________________ "Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."
Ja das ist bei glVertex2f so, aber wenn ich bei glVertex2i denn Wert auf eins setze,
gibt es auch viele winzige Kacheln! (Auch wenn das Bild orginal 32x32 groß ist zum test)
Registriert: Sa Mai 04, 2002 19:48 Beiträge: 3830 Wohnort: Tespe (nahe Hamburg)
@sharky: Ein wenig stutzig gemacht hast Du mich mit deiner Äußerung schon, allerdings habe ich bisher nichts gefunden, was meine Aussage wirklich wiederlegt. Verwendet das i den automatisch die Breite der Textur in Pixeln? Ich glaube fast nicht... (widersprechen darf man gerne ). Ich für meinen Teil habe bisher immer "f" genommen und bin auch recht zufrieden damit gewesen
_________________ "Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Ich mach mal ein auf dicke Hose:
Leute ihr enttäuscht mich! Was passiert wenn man statt "f" "i" oder "b" benutzt? Der Wertebereich wird intern auf den Fließkommabereich gemappt. Und zwar so, dass der Maximalwert auf 1.0 und 0 auf 0.0 gemappt wird. (Bei Integer glaub ich wird dadurch der negative Wertebereich abgekappt. Könnte auch sein, dass die kleinstmögliche Zahl auf 0 gemappt wird.)
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Flash. Da muss ich dir gerade wiedersprechen. Er mapped den Wertebereich bei den Farben. Aber auch nur, weil Farben normal immer als Bytes angegeben werden. Texturen sind IMMER (na ja fast. Siehe unten) im Bereich von 0 und 1. Dabei spielt es keine Rolle ob die Werte als Single, Double oder als Integer übergeben werden. Bei Integer ist der kleinst mögliche Wert natürlich 1. Wodurch man entweder die Textur ganz oder gar nicht sehen würde. In Normalfall macht das aber recht wenig Sinn. Ich hatte das gerade noch mal ausprobiert weil ihr mich gerade selber verwirrt hattet. Man kann bei Texturkoordinaten auch negative Werte angeben. Warum sollte es auch nicht gehen? Die Textukoordinaten haben ja auch eine komplett eigene Matrix.
Es gibt einen Sonderfall bei dem die Texturkoordinaten als Pixel übergeben werden. Aber das passiert nicht zufällig der muss schon provoziert werden. Und zwar wenn man als Target Texture_rectangle benutzt sind die Angaben in den Koordinaten als Pixel zu betrachten.
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
hmmm....schade....einen Versuch wars wert
Dann ist die Funktion ja quasi nutzlos...Alles was man mit "i" machen kann kann man auch mit "f" machen und dann sogar noch mehr. Wieso sollte man diese Funktion benutzen?
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Sa Mai 04, 2002 19:48 Beiträge: 3830 Wohnort: Tespe (nahe Hamburg)
1. Falls man nur kacheln möchte
2. Weil sonst merkwürdigen Fragen aufkommen, warum es ausgerechnet hier keine i-Funktion gibt?
3. höhrer Sinn der uns bisher verschlossen bleibt
_________________ "Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Wenn du zum Bleistifft mit Texture_Rectangle arbeitest ist sie nicht ganz nutzlos. Es ist eher unwahrscheinlich, dass man zwischen die Pixeln adressieren will. Aber so hast du schon recht. Alles was man damit machen kann geht auch problemlos mit der glTexCoord2f. Ähnlich Sinnvoll ist auch die glTexCoord2s. Das ist nämlich nur ein Integer mit halber Auflösung. Also ein Smallint. Wobei der zum Beispiel seine Berechtigung natürlich durch seine geringere Größe hat. Allerdings bringt das nur richtig was, wenn man die Textur komplett darstellen möchte. Partikel via VBO und dann um Platz zu sparen. Oder man setzt sie und manipuliert die Texturmatrix. Aber Single und Integer geben sich vom Platzbedarf her ja nichts. Lediglich die Genauigkeit dürfte bei sehr großen ganzen Zahlen besser sein als wie wenn man Single benutzen würde. Aber solche Texturkoordinaten sind eher sehr selten wodurch das als Argument auch wegfallen würde.
Vieleicht auch einfach nur wegen der Vollständigkeit. Ist zwar kein Grund warum man sie benutzen sollte aber könnte erklären warum sie existiert.
Registriert: Mi Dez 15, 2004 20:36 Beiträge: 454 Wohnort: Wien, Österreich
Zitat:
3. höhrer Sinn der uns bisher verschlossen bleibt
Das muss es sein. @Flash: Ich wollte lediglich zeigen, wie man eine GANZE Textur aufklebt, und das geht mit i wunderbar. Ich darf sogar aussagen zu glauben, dass "i" sogar schneller als "f" ist. Beweise habe ich keine.
_________________ "Meine Mutter sagt : 'Dumm ist der, der Dummes tut'." - Forrest Gump
Mitglieder in diesem Forum: Bing [Bot] 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.