我在使用大于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;
Run Code Online (Sandbox Code Playgroud)
使用窗口大小创建 OpenGL 窗口:
glutInitWindowSize(WIN_WIDTH, WIN_HEIGHT);
Run Code Online (Sandbox Code Playgroud)
但是,将纹理大小用于其他所有内容:
glViewport(0, 0, TEX_WIDTH, TEX_HEIGHT);
gluOrtho2D(0.0, TEX_WIDTH, 0.0, TEX_HEIGHT);
glTexCoord2i(TEX_WIDTH, TEX_HEIGHT);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1339 次 |
| 最近记录: |