我使用API glGetIntegerv
来获得视口和纹理的最大尺寸。他们都返回16K x 16K像素。如何在OpenGL中渲染超大尺寸纹理
这里是代码:
GLint maxTexture,maxViewport;
glGetIntegerv(GL_MAX_TEXTURE_SIZE, &maxTexture);
glGetIntegerv(GL_MAX_VIEWPORT_DIMS, &maxViewport);
不过,我需要的纹理尺寸较大,显示了一系列高分辨率的图像。我试图将视口大小设置为32K x 32K,并且程序成功运行。看起来,我从API glGetIntegerv获得的视口大小的最大值不是很正确。
但我无法将纹理大小设置为大于16K x 16K的值。 也许我应该尝试创建多个纹理单元,每个纹理单元的大小为16K x 16K。
有人提出了一个名为手动整体幻灯片成像的应用程序。 这里是超链接:
http://www.microvisioneer.com/
看来,超规模的纹理已经在这个应用程序实现的。 那么OpenGL是解决我的问题的正确工具还是有其他解决方案吗?
更新:刚才我发现,当我将视口设置为32K x 32K并且没有发生错误,但其真实尺寸仍然是16K x 16K。
你是什么意思的“1024 * 16 * 1024 * 16”大小?您使用的查询为* width *(和* height * for viewport)提供了一个值您可以查找由卡片返回的值[here](http://opengl.gpuinfo.org/gl_stats_caps_single.php?listreportsbycap=GL_MAX_TEXTURE_SIZE)值足以满足所安装硬件的最大显示尺寸。 – Ripi2
As @ Ripi2提到。你在说什么是关于视口,它没有任何纹理。纹理将基于硬件具有最大尺寸,并且可以将任何尺寸渲染到任何尺寸的视口。 – Ketan
根据规格,glViewport无声地夹持到支持的范围。这不是一个错误。 – Andreas