【问题标题】:enable/disable frag & vert shaders启用/禁用片段和垂直着色器
【发布时间】:2011-04-10 23:25:21
【问题描述】:

目前我正在使用

glUseProgramObjectARB(ProgramObject);

glUseProgramObjectARB(0);

但它不能正确切换回来,并给我一个“无效操作 glError” 沿着这些线

void updateAnim_withShader()
{
    int location;

    location = getUniLoc(ProgramObject, "currentTime"); 
    ParticleTime += 0.002f;

    if (ParticleTime > 15.0)
        ParticleTime = 0.0;

    glUniform1fARB(location, ParticleTime);
    printOpenGLError();
}

正确/正确的做法是什么(启用/禁用着色器)?

[我的代码文件(已删除临时链接)][1]

【问题讨论】:

  • 请向我们展示更多代码。到目前为止,我只能做出假设,现在我猜你正在尝试获得一个没有着色器限制的统一位置,这很可能会给你一个错误。

标签: opengl glsl shader fragment-shader vertex-shader


【解决方案1】:

您的 location 是 -1,因为实际的 currentTime 统一未在着色器中使用。

【讨论】:

    猜你喜欢
    • 2013-09-17
    • 1970-01-01
    • 2010-10-27
    • 1970-01-01
    • 2019-01-24
    • 2018-01-08
    • 2021-04-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多