片段着色器在float []向量中输出

时间:2014-07-07 13:34:01

标签: c# opengl fragment-shader

如何强制片段着色器返回float[]数组中的颜色值?通常片段着色器每个片段返回一种颜色,但是:

  

片段着色器输出变量可以聚合到数组[1]

但是如何读取或发送此数据到下一个片段着色器?

在我的片段着色器中,它会生成一些数据,我只需:

/*fragment.glsl*/
out float[512] oData

void main(void)
{
    for(int i=0;i<512;i++)
        data[i] = i/512.0;   
}

如何在以下片段着色器中读取该数组?我假设glBindFragDataLocation​是必要的,结果将出现在缓冲区中。但任何人都可以提供示例代码如何实现这一目标?或者我对这个想法完全错了?

我正在使用C#和OpenTK。

PS。我知道他们强烈建议避免这个,但对我而言,这是我认为最好的解决方案。

1 http://www.opengl.org/wiki/Fragment_Shader#Output_buffers

0 个答案:

没有答案