Je rencontre des problèmes pour utiliser des textures plus grandes que la fenêtre OpenGL ou la taille d'affichage en tant que cibles de rendu non affichées.
Quelle est la solution à ce problème?Utilisation de textures OpenGL plus grandes que la taille de la fenêtre/de l'affichage
10
A
Répondre
4
Il existe une solution simple.
En supposant que votre (non-affichage) textures sont 1024x1024 et vous êtes limités à une fenêtre/écran 256x256.
unsigned int WIN_WIDTH = 256;
unsigned int WIN_HEIGHT = WIN_WIDTH;
unsigned int TEX_WIDTH = 1024;
unsigned int TEX_HEIGHT = TEX_WIDTH;
Utilisez la taille de la fenêtre pour créer votre fenêtre OpenGL:
glutInitWindowSize(WIN_WIDTH, WIN_HEIGHT);
Mais, utilisez la taille de la texture pour tout le reste:
glViewport(0, 0, TEX_WIDTH, TEX_HEIGHT);
gluOrtho2D(0.0, TEX_WIDTH, 0.0, TEX_HEIGHT);
glTexCoord2i(TEX_WIDTH, TEX_HEIGHT);