Есть простое решение.
Предполагается, что ваши (не отображаемые) текстуры 1024x1024 и вы ограничены окном / дисплеем 256x256 .
unsigned int WIN_WIDTH = 256;
unsigned int WIN_HEIGHT = WIN_WIDTH;
unsigned int TEX_WIDTH = 1024;
unsigned int TEX_HEIGHT = TEX_WIDTH;
Используйте размер окна , чтобы создать окно OpenGL:
glutInitWindowSize(WIN_WIDTH, WIN_HEIGHT);
Но используйте размер текстуры для всего остального:
glViewport(0, 0, TEX_WIDTH, TEX_HEIGHT);
gluOrtho2D(0.0, TEX_WIDTH, 0.0, TEX_HEIGHT);
glTexCoord2i(TEX_WIDTH, TEX_HEIGHT);