使用OpenGL Trace View检测到glUniform1f错误

时间:2016-08-18 05:33:22

标签: android opengl-es

我通过jni使用OpenGL ES 2。 当我浏览帧渲染的OpenGL Trace视图时,我在控制台中看到了这个错误:

error applying transformations for glUniform1f(location = 6, x = 1.000000)
java.lang.RuntimeException: No such property: PROGRAM_STATE/PROGRAMS/${program}/ACTIVE_UNIFORMS/6/UNIFORM_VALUE

看起来我正在为一个非现有变量调用统一,所以我查看了所有用于此调用的用法,并尝试使用'glError'进行检查,但我一无所获。

我怎么知道造成这种情况的原因?

1 个答案:

答案 0 :(得分:1)

我怀疑你正在尝试上传到当前程序中不存在的unifom。

您是否在所有上打了glGetUniformLocation()这个链接版程序中的符号名称?

你无法安全地做出假设,例如:它们会增加,所以你确实需要为所有这些调用glGetUniformLocation()(或直接设置绑定位置,但在OpenGL ES 3.x之前它们不可用)。