我通过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'进行检查,但我一无所获。
我怎么知道造成这种情况的原因?
答案 0 :(得分:1)
我怀疑你正在尝试上传到当前程序中不存在的unifom。
您是否在所有上打了glGetUniformLocation()
这个链接版程序中的符号名称?
你无法安全地做出假设,例如:它们会增加,所以你确实需要为所有这些调用glGetUniformLocation()
(或直接设置绑定位置,但在OpenGL ES 3.x之前它们不可用)。