我的顶点着色器出现问题。在输出中偏斜的图像如图所示。
在我的Galaxy S(2.3.6 / Gingerbread)上,它是倾斜的。在我母亲的Iconia上,它完美无缺。我需要能够检测错误的实现。我正在考虑将此图像渲染到缓冲区并检查是否正确呈现。我认为最好的检测方法是什么?
我为那些顶点着色,使得红色= x,绿色= y和蓝色= z从范围[-1,1]转换为[0,1]。这样我就可以看到顶点的转换位置了。
接下来是使用OpenGLES 1.0渲染的相同项目的图像。这个应用了纹理,因为它需要更多的努力来像第一个图像一样着色。如您所见,看起来是正确的。
答案 0 :(得分:1)
嗯,这就是我解决它的方法:
我创建了函数
mat4 mmult(mat4 a, mat4 b){
return a*b;
}
然后改变了:
current *= animMatrix;
为:
current = mmult(current, animMatrix);
它有效。
也试过这个:
current = current * animMatrix;
但它也返回了错误的图像。
我对此没有合理的解释,但它似乎是修复。 任何关于为什么会受到高度赞赏的评论。