首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在着色器上看不到引用的统一

在着色器上看不到引用的统一
EN

Stack Overflow用户
提问于 2012-11-20 21:41:26
回答 1查看 117关注 0票数 2

我和openGL一起工作。我有顶点着色器和碎片着色器,它们在相互使用时工作得很好,但是当我添加镶嵌着色器时,以前在程序上识别的制服在着色器中不会被引用。

这是我没有意识到的特性吗?

这是在我的.cpp中:

代码语言:javascript
复制
program = new Shader("tessVshader.glsl", "tessFshader.glsl", "tessGshader.glsl");
// Removed tesselation specific just to try to compile w/ geo shader
...
program->SetUniform("Modelview", model * view);
program->SetUniform("NormalMatrix", normalMatrix);

这是tessGshader.glsl的第一行:

代码语言:javascript
复制
uniform mat4 Modelview;
uniform mat3 NormalMatrix;
layout(triangles) in;
layout(triangle_strip, max_vertices = 3) out;

这是输出:

代码语言:javascript
复制
Uniform Modelview is not referenced in the shaders.
EN

回答 1

Stack Overflow用户

发布于 2012-12-07 08:15:37

Shader类是你写的吗?如果是,它的一些代码将是有帮助的。如果正确创建了GL着色器对象,请确保调用了glUseProgram(...)在试图进入校服之前。否则openGL将无法找到它们。顺便说一句,请确保您可以在glsl代码中看到编译/链接时错误。如果您还没有使用过函数glGetInfoLog,请查找该函数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13474521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档