Registriert: Do Nov 23, 2006 20:44 Beiträge: 21 Wohnort: Wien
Hallo,
wahrscheinlich ist das jetzt eine dämliche Frage, aber ich habe mir die ersten 3 Kapitel in Wiki durchgelesen und hier im Forum gesucht,
und nix gefunden, bzw. es war mir (noch) zu komplex.
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
15 Pixel? Was hast du damit vor? Möchtest du etwas in 2D oder in 3D darstellen? Pixel sind für so das typische Zeichen für 2D.
Normal sind die Angaben Einheiten in OpenGL und diese sind reine Auslegungssache. Je nach Tiefe ist 1 weniger als wie wenn es weiter vorn stehen würde. Oder wenn die Perspektive anders eingestellt ist.
Wenn du 2D machen möchtest dann solltest du dir demnächst dieses Tutorial durchlehen. Nichts desto trotz befinden sich in Tutorial 1-3 noch Grundwissen was nie schaden kann.
In 2D ist es Problemlos möglich deine Elemente Pixelgenau zu positionieren.
Registriert: Sa Jan 01, 2005 17:11 Beiträge: 2068
Programmiersprache: C++
Du hast Texturen aktiviert, aber standartmässig eine weiße (nil) Textur aktiv. Sobald du aber eine Textur lädst ist diese gesetzt.
glBindTexture(GL_TEXTURE_2D, 0) setzt die default zurück oder glDisable(GL_TEXTURE_2D).
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Ist die Textur in den Ecken Schwarz? Wenn du Texturen benutzt dann musst du auch Texturkoordinaten benutzen, da OpenGL sonst nicht weiß wie er die Texturen darstellen soll. Jedes Vertex benötigt eine Koordinate. Setzen kannst du diese mit glTexCoord und die sind normal im Bereich zwischen 0 und 1. Bei den Koordinaten entspricht S = X und T = Y. Ach ja. Und du musst sie vor glVertex setzen.
Registriert: Do Nov 23, 2006 20:44 Beiträge: 21 Wohnort: Wien
Hallo,
Ich glaub ihr versteht mein Probmlem nicht.
Aber mein Problem ist NICHT, das ich die Textur nicht sehe, sondern das ich die zwei Quads nicht mehr sehe, sobald ich eine Textur lade.
Ich weiß das ich glBindTexture(GL_TEXTURE_2D, 0) und glTexCoord noch brauche, allerdings tritt ja schon vorher der Fehler auf,
das ich überhaupt nichts mehr auf den Bildschirm bekomme, auch keine normale Quads mehr, sobald ich nur
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Ferby. Lass es mich anders sagen. Was macht dich so sicher, dass es ein Fehler ist? Und nicht nur eine unglückliche Farbkombination die dafür sorgt, dass deine Anwendung versucht die Ostfriesische Nationalflagge nachzueifern. Weißer Adler auf weißem Grund.
Wenn du keine Textur hast, dann benutzt er die Farbe der Fläche (weiß). Wenn du aber eine hast wird die Farbe mit des Texels (Pixel der Textur) mit dem der Fläche verrechnet. Wenn das Pixel gerade schwarz ist dann ergibt 1 * 0 nun mal 0. Und bei typischerweise einem schwarzen Hintergrund ist deine Fläche nicht weg. Sie hat sich nur perfekt getarnt. Und dadurch, dass du keine Texturkoordinaten hast wird das Pixel an der Stelle 0, 0 über die gesammte Fläche gespannt. Und nach dem Laden sind sie schon gebunden und aktiv.
Wie i0n0s schon mal gesagt hat. Rufe einmal "glDisable(GL_TEXTURE_2D)" vor dem zeichnen deiner Flächen auf und du wirst sehen, dass sie wie aus Zauberhand wieder da sind. glBindTexture mit 0 hat in etwa den gleichen Effekt.
Mitglieder in diesem Forum: Google [Bot] und 8 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.