0

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

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

我已经为这些顶点着色,以便 red=x、green=y 和 blue=z 从范围 [-1, 1] 转换为 [0, 1]。这样我就可以看到顶点是从哪里转换的。 顶点着色器图像

接下来是使用 OpenGLES 1.0 渲染的同一项目的图像。这个应用了纹理,因为像第一张图像一样着色它需要更多的努力。如您所见,看起来是正确的。 在此处输入图像描述

4

1 回答 1

1

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

我创建了函数

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

然后改了:

current *= animMatrix;

到:

current = mmult(current, animMatrix);

它奏效了。

也试过这个:

current = current * animMatrix;

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

我对此没有合乎逻辑的解释,但这似乎是解决办法。任何关于为什么的评论将不胜感激。

于 2012-07-03T04:18:17.377 回答