Usando texturas OpenGL maiores que o tamanho da janela/tela
Pergunta
Estou tendo problemas ao usar texturas maiores que a janela OpenGL ou o tamanho de exibição como alvos de renderização sem exibição.
Qual é a solução para este problema?
Solução
Existe uma solução simples.
Supondo que suas texturas (sem exibição) sejam 1024x1024 e você está restrito a um 256x256 vitrine.
unsigned int WIN_WIDTH = 256;
unsigned int WIN_HEIGHT = WIN_WIDTH;
unsigned int TEX_WIDTH = 1024;
unsigned int TEX_HEIGHT = TEX_WIDTH;
Use o tamanho da janela para criar sua janela OpenGL:
glutInitWindowSize(WIN_WIDTH, WIN_HEIGHT);
Mas, use o tamanho da textura para todo o resto:
glViewport(0, 0, TEX_WIDTH, TEX_HEIGHT);
gluOrtho2D(0.0, TEX_WIDTH, 0.0, TEX_HEIGHT);
glTexCoord2i(TEX_WIDTH, TEX_HEIGHT);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow