gpt4 book ai didi

iphone - 在 iPhone 上使用着色器平移正方形

转载 作者:行者123 更新时间:2023-12-03 20:46:55 25 4
gpt4 key购买 nike

我正在尝试将 iPhone 上的 OpenGL ES 1.1(一点点)知识更新到 2.0。 iPhone 的默认 OpenGL ES 应用程序模板绘制一个正方形并使其上下平移并且工作正常。他们的实现对着色器本身的 Y 值变化进行数学计算,这几乎没有用。因此,我将顶点着色器更改为:

uniform mat4 mvpMatrix;

attribute vec4 position;
attribute vec4 color;
varying vec4 colorVarying;


void main()
{
gl_Position = position * mvpMatrix;
colorVarying = color;
}

这似乎是正确且常见的(从我在研究中看到的)。显然,我对代码进行了必要的更改,例如绑定(bind)制服,并且为了帮助数学,我获得了 esUtil.h 代码的源代码。在绘图方法上,我的代码如下所示:

transY += 0.075f;   

ESMatrix mvp, model, view;
esMatrixLoadIdentity(&view);
esPerspective(&view, 60.0, 320.0/480.0, 1.0, -1.0);

esMatrixLoadIdentity(&model);
esTranslate(&model, sinf(transY), 0.0f, 0.0f);

esMatrixLoadIdentity(&mvp);
esMatrixMultiply(&mvp, &model, &view);
glUniformMatrix4fv(uniforms[UNIFORM_MVPMATRIX], 1, GL_FALSE, (GLfloat *)&mvp);

这应该有效,但不幸的是,我得到的结果与简单的翻译有很大不同。

Screenshot

我已经重新启动了模板几次,但我无法弄清楚我在这里做错了什么...旋转似乎按预期工作,我相信...

如有任何帮助,我们将不胜感激。

最佳答案

我认为您想要反转位置变换的顺序,因为您的矩阵库可能按列优先顺序工作。

gl_Position = position * mvpMatrix;

=>

gl_Position = mvpMatrix * position;

关于iphone - 在 iPhone 上使用着色器平移正方形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5303739/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com