解析多采样数组纹理

tzxcd3kk  于 2022-09-26  发布在  其他
关注(0)|答案(1)|浏览(139)

我目前正在尝试实现级联多采样方差阴影贴图。虽然我的非多采样贴图似乎工作得很好,但我在解决多采样数组纹理方面遇到了问题。OpenGL文档说我应该使用glBlitFramebuffer调用来解析这些纹理。但是,在查看RenderDoc中已解析的数组纹理后,似乎只有数组的第一层显示为BLIT。

到目前为止,我已经缩小了问题的范围:

  • 单样本(无blit)级联/数组方差图工作正常。
  • 多样本(使用Blit/Resolve)非级联方差图工作正常。
  • 多采样级联方差贴图仅对纹理数组中的第一个纹理进行blit/solve。

我在这里有什么选择?理想情况下,我仍然希望在光照过程中使用2D数组纹理进行采样,但我不确定应该如何对多个数组层进行blit来解决多重采样。

当前解析代码:shadow_fbo[0]作为帧缓冲区,绑定GL_TEXTURE_2D_MULTISAMPLE_ARRAYshadow_fbo[1]GL_TEXTURE_2D_ARRAY绑定GL_COLOR_ATTACHMENT0

glBindFramebuffer(GL_READ_FRAMEBUFFER, shadow_fbo[0]);
glReadBuffer(GL_COLOR_ATTACHMENT0);
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, shadow_fbo[1]);
glBlitFramebuffer(0, 0, size, size, 0, 0, size, size, GL_COLOR_BUFFER_BIT, GL_NEAREST);
xxslljrj

xxslljrj1#

对分层图像进行分块只会影响层0。如果要对源和目标图像的所有层进行blit,则必须将每一对层附加到帧缓冲区,对其进行blit,然后再附加下一对层,对其进行blit等操作。

相关问题