1

我的片段着色器有问题,这是我的情况:

我有一个 3d 场景,中间有一个简单的 2d 正方形代表一堵墙(带有“GL.GL_QUADS”)。我使用函数“glu.gluLookAt”移动虚拟相机。

我为墙壁实现了一个简单的片段着色器,它基本上根据墙壁到虚拟相机的距离来改变墙壁的颜色(使用 dFdx 和 dFdy)。

问题是,我不想在墙上可视化着色器的输出,而是将输出存储在缓冲区或纹理中。

我尝试使用“gl.glBindFramebufferEXT”,但在这种情况下,输出是虚拟场景的整个渲染,而不仅仅是引用墙壁的着色器的输出。

那么我如何才能“提取”仅引用 GL_QUADS 的片段着色器的输出而不“提取”所有渲染场景?

4

1 回答 1

2

您将需要设置正射投影并仅渲染 FBO 所需的四边形(或仅渲染屏幕对齐的四边形)。然后,使用绑定为纹理的 FBO 的内容来渲染场景。

于 2012-06-27T14:40:20.767 回答