2

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

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

void main(void)
{

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

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

更新:

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

4

0 回答 0