android opengl的一个错误:未使用的变量会被消除

在android中使用opengl,着色器编译之后会进行优化,一些检测到无用的变量会被精简掉。

比如说下面这个:

uniform mat4 uProjectionMatrix;
attribute vec4 vPosition;
attribute vec3 vNormal;

void main()
{
  gl_Position = uProjectionMatrix * vPosition;
}

其中的变量vNormal将会被精简掉。

当然了,实际代码中,不可能出现这种无用的变量。但是我在开发的过程中有时候会添加这些变量,它被精简掉之后,就无法从java想它输入数据,而且会直接导致错误发生。

 

posted @ 2022-11-10 09:09  hdd2011  阅读(56)  评论(0)    收藏  举报