【问题标题】:Passing int array to fragment shader将 int 数组传递给片段着色器
【发布时间】:2010-12-02 20:41:25
【问题描述】:

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

我的问题是:我可以将这个数组作为 uniform 直接传递给着色器,并通过使用 gl_FragCoord 来查找给定位置的密度来生成像素 p>

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

【问题讨论】:

    标签: arrays opengl-es glsl fragment-shader


    【解决方案1】:

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

    【讨论】:

    • 为什么不使用 1D 纹理而不是 2D 1xN 纹理?顺便说一句-您能否指定哪些 GPU 不支持非常量索引?知道肯定会有用:)
    • @Kos:因为 OpenGL ES 2.0 不支持一维纹理。
    • 感谢您的回答,马蒂亚斯。我会试试看。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-27
    • 1970-01-01
    • 2011-12-18
    • 1970-01-01
    • 2015-11-20
    • 1970-01-01
    • 2014-11-02
    相关资源
    最近更新 更多