Ich habe Probleme mit Texturen, die größer als das OpenGL-Fenster sind, oder mit der Displaygröße als Renderziele ohne Anzeige.
Was ist die Lösung für dieses Problem?Verwenden von OpenGL-Texturen, die größer als die Fenster-/Anzeigegröße sind
10
A
Antwort
4
Es gibt eine einfache Lösung.
Angenommen, Ihre (Nicht-Anzeige) Texturen sind 1024x1024 und Sie werden zu einem 256x256 Fenster/Anzeige beschränkt.
unsigned int WIN_WIDTH = 256;
unsigned int WIN_HEIGHT = WIN_WIDTH;
unsigned int TEX_WIDTH = 1024;
unsigned int TEX_HEIGHT = TEX_WIDTH;
Verwenden Sie die Fenstergröße Ihre OpenGL-Fenster zu erstellen:
glutInitWindowSize(WIN_WIDTH, WIN_HEIGHT);
Aber, verwenden Sie die Texturgröße für alles andere:
glViewport(0, 0, TEX_WIDTH, TEX_HEIGHT);
gluOrtho2D(0.0, TEX_WIDTH, 0.0, TEX_HEIGHT);
glTexCoord2i(TEX_WIDTH, TEX_HEIGHT);