使用大于窗口/显示尺寸的OpenGL纹理
时间:2020-03-05 18:40:17 来源:igfitidea点击:
我在使用大于OpenGL窗口或者显示尺寸的纹理作为非显示渲染目标时遇到问题。
这个问题有什么解决方案?
解决方案
回答
有一个简单的解决方案。
假设(非显示)纹理为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);