使用OpenGL纹理大于窗口/显示器大小

10

我在使用比OpenGL窗口或显示大小更大的纹理作为非显示渲染目标时遇到了问题。
这个问题的解决方案是什么?

1个回答

4

有一个简单的解决方案。

假设你的(非显示)纹理为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);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接