C++ 警告:无法绑定变量(该变量不存在或已被优化)

C++ 警告:无法绑定变量(该变量不存在或已被优化),c++,opengl,glsl,fragment-shader,opengl-4,C++,Opengl,Glsl,Fragment Shader,Opengl 4,我试图传递一个变量timeVar(最初设置为0.0的浮点值),该变量在display()方法中随行变化 timeVar = time(0); 到我的片段着色器。然后我做这个 safe_glUniform1f(h_uTime, timeVar); 然后像这样把它传给我的着色器程序 h_uTime = safe_glGetAttribLocation(h_program, "uTime"); 但我一直在犯这个错误。请帮忙 WARN: uTime cannot be bound (it eit

我试图传递一个变量timeVar(最初设置为0.0的浮点值),该变量在display()方法中随行变化

timeVar = time(0);
到我的片段着色器。然后我做这个

safe_glUniform1f(h_uTime, timeVar); 
然后像这样把它传给我的着色器程序

h_uTime = safe_glGetAttribLocation(h_program, "uTime");
但我一直在犯这个错误。请帮忙

WARN: uTime cannot be bound (it either doesn't exist or has been optimized 
away). safe_glAttrib calls will silently ignore it.

由于
uTime
是一个统一的属性,而不是一个属性,因此使用
glGetAttriblLocation
将始终导致错误。您必须使用
glGetUniformLocation

uTime
似乎是一个统一的属性,但您需要查询属性位置。试着改用
glGetUniformLocation
,效果不错!谢谢