使用带有默认帧缓冲区的分层渲染

时间:2013-11-20 22:04:23

标签: opengl glsl framebuffer

我知道我们可以附加一个分层纹理:

A mipmap level of a 1D/2D texture array
A mipmap levevl of a 3D texture
A mipmap levevl of a Cube Texture/ Cube Texture Array

到FBO并进行分层渲染。

OpenGL维基也说“分层渲染是让GS将特定基元发送到分层帧缓冲区的不同层的过程。”

默认帧缓冲区可以是分层帧缓冲区吗?即我可以将3d纹理绑定到默认FB并使用几何着色器渲染到此纹理的不同图层吗? 我尝试编写这样的程序,但屏幕是空白的,我不确定这是否正确。

如果不是,那么当我将默认FB绑定到分层渲染时可能会发生什么?

1 个答案:

答案 0 :(得分:1)

如果使用默认的帧缓冲进行分层渲染,那么您绘制的所有内容都将直接转到默认的帧缓冲区。它们的行为就好像所有东西都在同一层。

OpenGL 4.4 Core Specification - 9.8分层帧缓冲区 - 第296页

  

如果帧缓冲完成并且所有填充的附件都是分层的,则认为它是分层的。渲染到分层帧缓冲区时,GL生成的每个片段都会分配一个层编号。

     

[...]

     

如果帧缓冲没有分层,则由几何着色器写入的图层编号无效。