【问题标题】:Which version of GLSL supports Indexing in Fragment Shader?哪个版本的 GLSL 支持 Fragment Shader 中的索引?
【发布时间】:2012-06-04 05:58:47
【问题描述】:

我有一个片段着色器,它迭代一些输入数据和我得到的旧硬件:

错误 C6013:在此配置文件中只能索引 texcoords 数组,并且只能使用循环索引变量

我在谷歌上搜索了很多东西,比如“XX 之前的硬件不支持片段着色器上的索引”。

我想知道这种行为是否在 GLSL 版本中标准化,例如“比 XX 更早的 glsl 版本不支持片段着色器上的索引”。如果是这样,哪个版本开始支持它。

【问题讨论】:

    标签: opengl glsl


    【解决方案1】:

    您的具体硬件是什么?

    旧的 ATI 卡(X1600 以下)及其驱动程序存在此类问题。可以肯定的是,并非英特尔的最新显卡也受此影响。

    “您对如何检测我的硬件是否能够在片段着色器中进行索引有任何建议吗?”

    唯一可靠但不那么漂亮的方法是获取渲染器信息:

    glGetString(GL_RENDERER)
    

    并检查此渲染器是否出现在不受支持的列表中。

    【讨论】:

      【解决方案2】:

      该特定错误来自 nv4x(GeForce 6/7 卡)的 Nvidia 编译器,并且是硬件限制。任何解决方法都需要完全禁用硬件并使用纯软件渲染。

      所有版本的 GLSL 都支持该语言的索引 - 此错误属于超出硬件资源限制的全部内容。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-01-13
        • 2021-03-26
        • 2020-01-05
        • 2021-11-08
        • 2019-04-02
        • 1970-01-01
        • 2023-04-11
        相关资源
        最近更新 更多