ich weiß nicht ob es daran liegt das ich übermüdet bin oder so, aber ich verzweifel grad an den Framebuffern (GL_FRAMEBUFFER_EXT)..
Ich hab sie schon tausendfach verwendet und nie probleme gehabt, aber grad im moment.. ka.. (wobei ich dazusagen muß, das was ich grad tue hatte ich nochnie versucht damit)
Also, es geht mir darum, ich habe mein OpenGL Fenster das sagen wir eine größe von 800x600 hat. Jetzt möchte ich gern einen Shader auf eine Textur anwenden die die maße 512x512 hat.
Ich erstelle also einen Framebuffer + Framebuffer-Textur mit den maßen 512x512.
Das Binde ich nun, zeichne ein Quad von 0,0 -> 512x512 im Orthomode und nehm dann die Textur vom Framebuffer und binde sie zum benutzen. So, das problem ist jetzt... die Textur die dabei enstanden ist, ist irgendwie "versetzt".. so also wäre das Quad, welches ich an die position 0,0 zeichne nicht wirklich an 0,0 sondern so, das seine rechte untere kante am rechten unteren rand meines Fensters ist = in der resultierenden textur ist nur die linke obere ecke von meiner eigentlichen textur drin.. :/
Ich gehe mal davon aus, das liegt daran das da noch irgendwie evtl der Viewport vom Fenster gesetzt ist beim Rendern in den Framebuffer etc.. aber selbst wenn ich den via glViewport auf 512x512 setze klappt es nicht.. (es wird anders, aber nicht wirklich besser).. auch mit glOrtho, glIdentity etc.. alles bringt nix..
Hat da jemand ne idee, woran das liegen kann?
Ich muß das rendern in den Framebuffer leider mitten im normalen zeichenablauf machen, also kann es nicht direkt als erstes machen.. Was muß ich da alles resetten etc, damit das klappt? ^^
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Eine Frage dazu: Wenn du die Textur renderst, ist sie während dessen im Framebuffer gebunden und ist dieser während dessen gebunden? Wenn ja, dann solltest du das ändern, z.B. durch eine Puffertextur.
Gruß Lord Horazont
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Wie istn das bei Framebuffern... kann ich bei denen auch ganz normal einfach via glOrtho meine Projektion einstellen?
Wenn mein Fenster jetzt 1024x768 groß ist und ich will ein Quad mit der größe 800x600 in einen 800x600 großen Framebuffer zeichnen...
Aber wenn ich dann die Textur die vom Framebuffer generiert wurde (Das Color-Attachment vom Framebuffer) binde und einfach hinzeichne fehlt ein stück oben und links (ist einfach schwarz)... komischerweise exakt soviel, wie der unterschid zwischen Framebuffer größe (800x600) und Fenstergröße ist (1024x768)..
und egal was ich tue, es ändert sich zwar hier und da ein wenig, aber nie wird es richtig lasse ich z.B. das glOrtho weg und ändere nur den Viewport fehlt am rechten rand aufeinmal auch ein stück (logisch, denn der viewport passt nichtmehr zur ortho größe)..
Hat da niemand irgendne idee was das sein kann? Es muß dich möglich sein das der Framebuffer ne andere größe als das Fenster hat??
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Habe mit FBOs bisher noch nicht gemacht. Aber im Tutorial wird vor dem Zeichnen in den Framebuffer der Viewport auf die Größes des Framebuffers gesetzt. In deinem Code sehe ich Width und Height. Ist das die Größe des Fensters oder des Buffers?
Habe mit FBOs bisher noch nicht gemacht. Aber im Tutorial wird vor dem Zeichnen in den Framebuffer der Viewport auf die Größes des Framebuffers gesetzt. In deinem Code sehe ich Width und Height. Ist das die Größe des Fensters oder des Buffers?
oh, sorry vergessen dazu zuschreiben ^^ Width und Height ist in dem fall die größe des Framebuffers
PS: Das fiese ist ja, normal gehen die framebuffer bei mir problemlos... aber ich hab bisher auch nochnie versucht nen buffer zu machen, der kleiner ist als mein Fenster :/
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
hmm... Hast du mal versucht, den Viewport so anzulegen, als ob der Framebuffer an der unteren rechten seite deines Fensters liegen würde?
Gruß Lord Horazont
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Ne nochnicht probiert.. aber das wäre auch wenn eine lösung die mir sehr merkwürdig vorkäme.. :/ Linke untere ecke könnte ich noch so halb verstehen irgendwie... aber untere rechte ecke?
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
ja, das sind diese kleinen netten Fehler, die einen in den Wahnsinn treiben
Gruß Lord Horazont
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Mitglieder in diesem Forum: 0 Mitglieder und 5 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.