从image2DArray访问image2D

时间:2013-06-26 12:37:24

标签: opengl image-unit

我问的可能是一个简单的问题。我有一个image2D纹理的纹理数组(GL_TEXTURE_2D_ARRAY)。我通过image2DArray访问片段着色器中的数组。如何访问数组的图像? imageLoad()有一个图层号的参数?我已阅读herehere,但未能弄清楚它是如何完成的。

问题是,如果我这样访问它:

void main(void)
{

color = vec4(imageLoad(output_image, ivec3(gl_FragCoord.xy,0) ).xyzw) / 255.0;
}

也就是说,第三个纹理坐标是纹理层索引。我将纹理输出到屏幕上,但它变为静态(不随凸轮移动而移动)并移位。

更新

好吧,这是我的错。我引用了错误的纹理对象。是的,imageLoad中ivec3的第三个坐标应该是纹理数组层索引。

1 个答案:

答案 0 :(得分:1)

你需要的就是这里,link。 (不,我并不打算听起来像是Dido的歌曲。)