将纹理复制到另一个纹理时,我需要垂直翻转纹理。我知道 3 种简单的方法:
1. 使用全屏四边形从一次 FBO Blit 到另一个(并在片段着色器中翻转)
2. 使用glBlitFrameBuffer进行 Blit 。
3. 使用 glCopyImageSubData
我需要在未附加到任何 FBO 的 2 个纹理之间执行此副本,因此我试图避免前 2 个解决方案。我正在尝试第 3 个解决方案。
这样做:
glCopyImageSubData(srcTex ,GL_TEXTURE_2D,0,0,0,0,targetTex,GL_TEXTURE_2D,0,0,width ,0,height,0,1);
它不起作用。副本返回垃圾。这个方法应该在读取时能够翻转吗?是否有替代的 FBO 无关方法(仅限 GPU 端)?
顺便提一句:
glCopyTexSubImage2D(GL_TEXTURE_2D,0,0,0,0,height ,width,0 );
也不行。