OpenGL-重用纹理id

OpenGL-重用纹理id,opengl,Opengl,我有一个场景,需要更改纹理参数并加载新数据。我能否只生成一次纹理id(glGenTextures),然后调用以下代码请求用户: glBindTexture(GL_TEXTURE_2D, texId); glTexImage2D(GL_TEXTURE_2D, 0, img.internalformat, img.width, img.height, 0, img.format, GL_UNSIGNED_BYTE, img.buf); 在调用后续的glTexImage2D之前是否应该删除并生成新的

我有一个场景,需要更改纹理参数并加载新数据。我能否只生成一次纹理id(
glGenTextures
),然后调用以下代码请求用户:

glBindTexture(GL_TEXTURE_2D, texId);
glTexImage2D(GL_TEXTURE_2D, 0, img.internalformat, img.width, img.height, 0, img.format, GL_UNSIGNED_BYTE, img.buf);

在调用后续的glTexImage2D之前是否应该删除并生成新的纹理id?

是!如果我正确理解了您的问题,您可以调用
glDeleteTextures
,删除纹理并重新使用名称。详情如下:


为什么要这样做?我开发了一个使用OpenGL的gui应用程序。用户可以加载一些图像,所以我想知道每次删除并创建一个新的纹理id是否有意义。