将int数组传递给片段着色器

时间:2010-12-02 09:40:33

标签: arrays opengl-es glsl fragment-shader

我正在尝试在OpenGL ES中绘制迭代函数。正在更新一组int,其中迭代函数命中给定像素的频率。我想将此密度数组传递给片段着色器,并使用它将结果绘制在覆盖整个屏幕的简单四边形上。

我的问题是:我可以将此数组作为统一直接传递到着色器,并使用 gl_FragCoord 生成像素以查找给定位置的密度

我应该使用 GL_LUMINANCE 来使用数组创建一个包含一个通道的纹理并将其传递给着色器?

1 个答案:

答案 0 :(得分:4)

您可以使用有限数量的制服,并且索引可能会令人不安,因为并非所有GPU都支持非常量索引。 2D Nx1纹理没有任何这些问题,但会将值返回到[0,1]范围。您可以缩小此值以获取原始整数并使用它。