Beim Rendern mache ich nichtmal glBindTexture oder glTexCoord2f.
Die ersten 3 Quads werden mit der Texture "bemalt", das will ich aber nicht.
Und später, wenn ich noch andere Polygone dazu rendere, sind die neuen schwarz, obwohl ich glColor3f aufgerufen habe.
Weiß jemand, was da falsch sein kann?
Code:
Code:
glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Im Anschluss an meine Antwort verschiebe ich das Thema mal.
Und zu deinem Problem kann ich nur sagen, dass OpenGL eine Statemaschine ist. Also wenn du etwas aktiviert hast ist es so lange an bis du es wieder deaktivierst. Und wenn du etwas an einer Stelle nicht haben willst musst du es deaktivieren.
Soll bedeuten, wenn du irgendwann keine Texturen haben willst sie aber vorher irgendwann aktiviert wurden musst du glDisable(GL_TEXTURE_2D) aufrufen.
Wenn du irgendwann Texturen haben willst, dann musst du aber auch Texturkoordinaten setzen, weil OpenGL sonst eine Textur aufbringt aber mit der zu letzt benutzten Texturkoordinate. Diese Stelle wird dann auf die komplette Fläche aufgetragen. Das dürfte in deinem Falle ein schwarzes Pixel sein. Wenn gar nichts gesetzt wurde ist es 0, 0.
Die Farbe der Texture wird mit der gesetzen Farbe multipliziert. Mit glColor3f(1,1,1) setzt man sie auf weiß. Dann wird mit 1 multipliziert, so dass die Texturefarbe erhalten bleibt.
Habe nurnoch ein Problem: die Textur wird ein wenig dunkler, bzw. die Farbe geht ein wenig ins blaue.
Ist eine 24bit Bmp 256x512. Woran könnte das liegen?!
Habe noch eine zweite Frage, und zwar ist im Moment die linke/rechte Seite meines Windows in OGL bei -3/3,
und die obere/untere auch. Kann ich irgendwie einstellen, dass die Matrix von -100 bis +100 geht?
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Als erstes bitte eine Bitte. Vermische bitte nicht zu viel Fragen in einem Thema. Wenn diese inhaltlich zusammen passen dann ist das okay. Aber sollten sie komplett voneinander abweichen ist es besser, wenn du dafür ein eigenes Thema erstellst. Nicht jeder der sich mit den Ansichten auskennt wird so etwas in einem Thema über Texturen vermuten. Außerdem trägt es dann nicht gerade zur Übersicht bei.
Farbe der Textur. Dies kann durch aktiviertes OpenGL Licht beeinflusst werden. Deaktivieren kannst du dieses mit glDisable(GL_LIGTHNING) bzw musst du darauf achten auch wirklich weiß als Farbe einzustellen. Sollte das alles nichts bringen hilf im Zweifel immer ein Bild auf dem man das Problem erkennen kann. Oftmals erkennen wir dann schon genau wo das Problem ist.
Ansicht: Dafür wäre erst einmal hilfreich zu wissen ob du eine Perspektive hast oder dich im orthogonalen Modus befindest. Also benutzt du 3D oder 2D? In 2D kannst du so etwas erreichen in dem du die Parameter von glOrtho entsprechen anpasst. Befindest du dich aber in 3D ist das nicht (nicht einfach) möglich, da diese Werte sehr stark von der Tiefe, des FOV und allen anderen Sachen abhängig sind.
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Ich weiß leider nicht welchen Wiki Beitrag du meinst aber wir haben eine spezielles 2D Tutorial.
Nach dem Initialisieren bzw. bei der Änderung der Fenstergröße muss OpenGL immer gesagt werden wie er das alles darzustellen hat. Normal wird dort eine Perspektive gesetzt aber in deinem Fall muss du dann den Orthomodus setzen. Typischerweise wird dies im OnResize erledigt.
Code:
glViewport(0,0, ClientWidth, ClientHeight);
glMatrixMode(GL_PROJECTION);
glLoadIdentity;
glOrtho(0, ClientWidth, ClientHeight,0,0,128);
In deinem Fall müsstest du dann entsprechend -100 und 100 einsetzen.
Im Zweifel kannst du dir Unter Files -> VCL Source die Quellen des 2D Tutorials downloaden oder du postest hier ein bisschen Code dann am lebenden Objekt.
Mitglieder in diesem Forum: 0 Mitglieder und 2 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.