OpenGL ES问题 - 应该简单吗?

时间:2012-05-07 14:18:13

标签: iphone opengl-es opengl-es-2.0

我是OpenGL ES的新手,我正在尝试使用一些着色器。我的问题是,当我初始化矩阵中的某些值时,但不是全部,默认值是什么?我假设它将为零,但我在片段着色器中使用以下代码:

highp vec4 c = texture2D(inputImageTexture, textureCoordinate) ;

highp mat4 m;

m[0] = vec4(1.0);
m[1] = vec4(1.0);
m[2] = vec4(1.0);

c = m * c;

gl_FragColor = c;

显然,数组的最后一列尚未初始化。为了确保m的最后一列中的所有值都为零,我添加了行m[3] = vec4(0.0);,得到了不同的结果。我已经尝试将第四列设置为255.01.0,但每次我得到不同的结果时,我都没有初始化列。有谁知道默认值是什么?

1 个答案:

答案 0 :(得分:4)

默认值为“undefined”,就像在C中一样。换句话说,它可以是在分配矩阵之前在该存储器单元中的任意值,因为分配不会以任何其他方式清除或初始化单元。在以标准方式之一使用矩阵之前,应始终初始化矩阵的所有元素。