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

时间:2008-08-18 08:09:11

标签: opengl textures

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

1 个答案:

答案 0 :(得分: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);