在Android上检测错误的GLSL实现

时间:2012-06-30 00:00:32

标签: android opengl-es glsl

我的顶点着色器出现问题。在输出中偏斜的图像如图所示。

在我的Galaxy S(2.3.6 / Gingerbread)上,它是倾斜的。在我母亲的Iconia上,它完美无缺。我需要能够检测错误的实现。我正在考虑将此图像渲染到缓冲区并检查是否正确呈现。我认为最好的检测方法是什么?

我为那些顶点着色,使得红色= x,绿色= y和蓝色= z从范围[-1,1]转换为[0,1]。这样我就可以看到顶点的转换位置了。  Vertex Shader Image

接下来是使用OpenGLES 1.0渲染的相同项目的图像。这个应用了纹理,因为它需要更多的努力来像第一个图像一样着色。如您所见,看起来是正确的。 enter image description here

1 个答案:

答案 0 :(得分:1)

嗯,这就是我解决它的方法:

我创建了函数

mat4 mmult(mat4 a, mat4 b){
    return a*b;
}

然后改变了:

current *= animMatrix;

为:

current = mmult(current, animMatrix);

它有效。

也试过这个:

current = current * animMatrix;

但它也返回了错误的图像。

我对此没有合理的解释,但它似乎是修复。 任何关于为什么会受到高度赞赏的评论。