C++ 警告:无法绑定变量(该变量不存在或已被优化)
我试图传递一个变量timeVar(最初设置为0.0的浮点值),该变量在display()方法中随行变化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 = 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
,效果不错!谢谢