【问题标题】:GLSL: Passing char array to fragment shaderGLSL:将字符数组传递给片段着色器
【发布时间】:2015-11-27 04:56:33
【问题描述】:

我有一个带有强度值的 unsigned char[4096][4096] 数组,我想将它们正确地传递给片段着色器。
虽然我似乎需要glVertexAttribPointer()(我猜这是因为我需要片段中的数据,而不是顶点着色器)或glTexImage2D()type = GL_UNSIGNED_BYTE,但我无法达到预期的结果。
由于在其中使用了浮点/整数向量,我发现的示例对我也没有帮助。

如何从片段着色器访问字节数组数据?

【问题讨论】:

  • 只有在强度数据绑定到顶点时才可以使用 vertetxAttribute(当然不是这样)。所以纹理解决方案是可以的,您可以使用正常的采样函数(...纹理(...))访问您的数据。
  • 您通常只能拥有 16 个左右(如何计算数字是相当神秘的)顶点属性,因此 4096x4096 会远远超出此范围,即使它适合这种情况。

标签: c++ opengl glsl


【解决方案1】:

GL_R8UI 用于 glTexImage2D()internalFormat + texelFetch() 用于在着色器中精确访问纹理。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-27
    • 1970-01-01
    • 2011-03-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多