Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Gut dann danke an dich. Du machst deinem Namen übrigens alle Ehre.
Dann werde ich das dabei belassen, habe auf jedenfall etwas dabei gelernt. Wenn ich zu FBO's komme belästige ich euch gerne wieder.
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -
Ich frage mich einfach: wieso wird das da unten angezeigt? Nachdem mir BlueCobold einige Seiten zuvor sagte, dass ich einfach nur die Textur Koordinaten beim kopieren falsch gesetzt habe, habe ich heute nochmal nachgedacht und mal die Koordinaten ausprobiert, an die das rot eingekreiste Bildchen steht und schon hatte ich mein korrektes Bild. Statt 25 musste ich nun etwa 285 angeben (als y Koordinate).
Doch: wieso? Wie errechne ich diese Koordinaten und/oder wie verschiebe ich das Bild bspw. an die Position 0|0? Ich habe bereits die Funktion glRasterPos gefunden, doch die bewirkt wohl doch nicht das, was ich zunächst dachte.
Ich weiß dass das wohl sehr elementare Fragen über OpenGL sind und ich wohl nochmal alles von Anfang an genauer durchgehen sollte, aber es wäre schön wenn mir jmd. trotzdem antworten könnte.
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -
Ich glaub du hast nicht ganz verstanden was der Viewport ist. Die Viewport Transformation mapped normalisierte Gerätekoordinaten (in denen ist (-1.0,-1.0) links unten und (1.0, 1.0) rechts oben) auf Pixelkoordinaten. Du hast nun offenbar eine orthogonale Projektionsmatrix gesetzt, die dir z.B. 0 nach links (-1.0) und 800 nach rechts (1.0) mapped, damit du schön intuitiv mit "Pixelkoordinaten" arbeiten kannst. Wenn du nun aber deinen Viewport änderst, dann muss du natürlich diese Projektionsmatrix auch an den neuen Viewport anpassen, weil sonst ist 400 immer noch "in der Mitte", aber "in der Mitte" ist jetzt nichtmehr in der Mitte vom Fenster, weil eben der Viewport nichtmehr dem Fenster entspricht.
Ich hab's befürchtet. Wie mache ich das am klügsten?
Ja, mein Wissen darüber ist wohl wirklich begrenzt. Das wird auch vorerst mein letztes Experiment sein, bevor mein Buch durchgelesen ist.
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -
Ich bin mir nach Deinen letzten zwei Posts nicht mehr sicher, ob Du das Grundverständnis der Basis-Funktionen schon verstanden hast oder diese lieber nochmal durcharbeiten solltest. Du scheinst ein Thema angeschnitten zu haben (Copy), was für Dein aktuelles Wissen deutlich zu weit gegriffen ist.
Ich bin mir nach Deinen letzten zwei Posts nicht mehr sicher, ob Du das Grundverständnis der Basis-Funktionen schon verstanden hast oder diese lieber nochmal durcharbeiten solltest. Du scheinst ein Thema angeschnitten zu haben (Copy), was für Dein aktuelles Wissen deutlich zu weit gegriffen ist.
Da gebe ich dir Recht. Die Frage heute war auch eher aus Interesse, werde, bis ich aufgeholt habe, auch nichts mehr verändern/versuchen. Hab' OpenGL etwas unterschätzt.
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -
Ich hab's befürchtet. Wie mache ich das am klügsten?
Mir ist generell unklar wieso du überhaupt den Viewport setzen musst. Map doch einfach nur den entsprechenden Ausschnitt der Textur auf dein Quad!?
Ansonsten musst du eben deine Projektionsmatrix bzw. deine Koordinaten anpassen.
Außerdem gibts noch den Scissor Test (glScissor()), der tut genau das was du wohl mit dem Viewport erreichen wolltest. Würd ich aber nur verwenden wenns wirklich nötig ist, was in deinem Fall wohl nicht zutrifft.
Ich möchte gar nicht mehr groß was machen, die Frage war nur rein aus Interesse gestellt. Danke soweit an euch zwei, ich werde mich jetzt erstmal in dem Buch verkriechen.
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -