我希望使用 glCopyTexImage2D() 上传具有非零 mipmap 级别的纹理。我正在使用以下代码:
// Render Some Geometry
GLint mipmap_level = 1;
glGenTextures(1, &textureId);
glBindTexture(GL_TEXTURE_CUBE_MAP, textureId);
glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_NEAREST);
glCopyTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X,mipmap_level,GL_RGBA16_SNORM,0,0,128,128,0);
// Five other glCopyTexImage2D() calls to load textures
glGenerateMipmap(GL_TEXTURE_CUBE_MAP);
//Render geometry
在这里,如果我使用 mipmap_level = 1,则根本不会绘制几何图形。mipmap 级别如何与 glCopyTexImage2D() API 结合使用?我想使用 level = 1 加载 64x64 纹理,即第一个采样的 mipmap。在 glCopyTexImage2D() 之前使用 glGenerateMipmap() 调用没有任何意义。那么驱动程序将如何使用 glCopyTexImage2D() 加载非零 mipmap 级别?