在 OpenGL 中(即使用 glGenTextures)可以创建的纹理数量是否有限制?
我知道 GL 施加了一些限制,例如。片段着色器中可以使用的纹理数量。但是,我无法找到任何有关可用的整数“纹理名称”总数的文档。
glGenTextures 的唯一限制是由纹理名称的位宽度给出的(GLint),这是 32 位;事实上,纹理名称的数量可能如此之多,以至于您在生成纹理名称时可能永远不会遇到问题。
纹理的限制是图形系统内存的限制。仅当应用程序使用以下命令提交纹理数据时,OpenGL 实现才知道纹理大小和格式glTexImage2D(以及其他 glTexImage* 函数,如果可用),它指定宽度、高度和内部纹理格式:有了这些参数,就可以确定存储纹理数据所需的内存。
要检查错误,您应该使用以下命令查询 OpenGL 错误gl获取错误,如果操作无法分配所需的内存,则返回 GL_OUT_OF_MEMORY。也可以通过以下方式返回此错误glGen纹理 and glTexImage2D etc.
此错误最有可能由以下方式返回glTexImage2D等等,因为纹理分配所需的内存远大于将纹理名称标记为已使用所需的内存。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)