可以在OpenGL中创建的纹理数量是否有限制 - 也就是说,使用glGenTextures?
我知道GL有一些限制,例如.可以在片段着色器中使用的纹理数.但是,我无法找到任何可用的整数"纹理名称"总数的文档.
Luc*_*uca 18
glGenTextures的唯一限制是由纹理名称(GLint)的位宽给出,它是32位; 实际上纹理名称的数量可以很大,以至于在生成纹理名称时可能永远不会有问题.
纹理的限制是图形系统内存的限制.仅当应用程序使用glTexImage2D(以及其他glTexImage*函数,如果可用)提交纹理数据时,OpenGL实现才知道纹理大小和格式,它指定宽度,高度和内部纹理格式:使用这些参数可以确定所需的内存存储纹理数据.
要检查错误,您应该使用glGetError查询OpenGL错误,如果操作无法分配所需的内存,则返回GL_OUT_OF_MEMORY.glGenTextures和glTexImage2D等也可以返回此错误.
glTexImage2D等最有可能返回此错误,因为纹理分配所需的内存远大于标记所使用的纹理名称所需的内存.
| 归档时间: |
|
| 查看次数: |
12859 次 |
| 最近记录: |