![]() |
[OpenGL] Darstellung mit FBO auf dem Kopf
Hallo,
ich bin gerade dabei mehrere Surfaces in meine 2D-Engine einzubauen. Dazu verwende ich unter OpenGL ein Framebufferobject. Mein Problem dabei ist jedoch, das alles, was ich auf eine Textur zeichne am Ende auf dem Kopf steht. Folgenden Code verwende ich zum einstellen der Kamera. Solange ich nicht auf ein FBO zeichne habe ich auch keine Probleme damit.
Delphi-Quellcode:
Es liegt auch definitiv nicht an meinen Texturkoordinaten und ich möchte diese auch nicht umdrehen.
glViewport(0,0,AWidth,AHeight);
glMatrixMode(GL_PROJECTION); glLoadIdentity; glOrtho(0,AWidth,AHeight,0,0,100); glMatrixMode(GL_MODELVIEW); glLoadIdentity; Hat jemand vielleicht eine Idee woran mein Problem liegen könnte? Wenn noch Code benötigt wird, fragt einfach danach. Schon einmal Danke, Andreas PS: Crosspost zur DGL, ![]() |
Re: [OpenGL] Darstellung mit FBO auf dem Kopf
Dann mach doch einfach ein glScalef(1, -1, 1); vor dem Zeichnen in den Framebuffer und nach dem Zeichnen setzt du das ganze wieder zurück.
|
Re: [OpenGL] Darstellung mit FBO auf dem Kopf
Hallo,
danke für deine Antwort, mit folgendem Code in der Szeneneinstellung scheint es zu funktionierten:
Delphi-Quellcode:
Nochmal Danke,
procedure TOGLApplication.Setup2DScene(AWidth, AHeight: integer);
begin glViewport(0,0,AWidth,AHeight); glMatrixMode(GL_PROJECTION); glLoadIdentity; if FRenderingToFBO then glOrtho(0,AWidth,0,AHeight,0,100) else glOrtho(0,AWidth,AHeight,0,0,100); glMatrixMode(GL_MODELVIEW); glLoadIdentity; end; Andreas |
Re: [OpenGL] Darstellung mit FBO auf dem Kopf
Klar, so geht es natürlich auch. Macht aber kaum einen Unterschied, ob du es jetzt mit scale machst oder gleich die gesamte Projektionsmatrix änderst.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:02 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz