首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与GL_MAX_TEXTURE_SIZE混淆

与GL_MAX_TEXTURE_SIZE混淆
EN

Stack Overflow用户
提问于 2012-03-18 20:14:59
回答 1查看 10.6K关注 0票数 11

我想知道GL_MAX_TEXTURE_SIZE变量返回的是一个轴的纹理像素尺寸,还是两个轴相加的纹理像素尺寸(x,y)。

例如,在我的pc上,我得到的结果是8192。这是否意味着我可以加载8192*8192*4(256mb)或4096*4096*4 (64mb)的纹理?如果是这样,为什么当我的显卡有1 1gb显存时会发生这种情况??

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-18 21:44:22

OpenGL规范称其为最大1D/2D纹理图像尺寸,因此它实际上意味着8192x8192-image。嗯,这意味着把宽度和高度加起来是没有意义的,因为这并没有说明任何关于大小的问题,8000x192-texture和4096x4096-texture的大小是完全不同的。至少乘法会更合理,但在本例中,8192指的是~90x90-texture。

但你应该对这些值持保留态度。它们实际上只是实现(硬件/驱动程序)允许的上限,所以它不必与硬件的显存匹配。实际上,视频内存中存储的内容要多得多,比如帧缓冲区、VBO等等,所以给出一些保守值是非常合理的。同样,也可能是您的驱动程序开发人员不太注意这个常量(它不是ATI,对吧?)只需返回一些默认值,您的纹理实际上可以更大。

正如Robinson在他的评论中所说,它也可能取决于原始内存之外的其他东西,因为纹理内存可能是视频内存中的某个特殊区域,提供一种特殊的2D寻址/缓存模式。

票数 23
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9758209

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档