无法使2D转换工作

时间:2013-11-24 18:03:22

标签: opengl matrix glsl lwjgl linear-algebra

我和我的budy正在尝试创建一个2D引擎,但我们无法让转换工作,这就是它现在的样子。我们已经为每个元素创建了矩阵,比如缩放,平移等。但是我们不能让四边形移动或做任何事情,我们做过任何数学错误吗?这就是我们现在得到的,我们只是渲染vbo而不是使用着色器。使用着色器我的意思是我们是GLSL。

http://imgur.com/T0jDSTO

变换

http://pastebin.com/dKRW244e

Matrix3f

http://pastebin.com/GY0872k6

Matrix4f

http://pastebin.com/f1YNuM09

VBO

http://pastebin.com/5zVgWYtK

BasicShader

http://pastebin.com/RyeSxibQ

着色

http://pastebin.com/68tJTswq

VertexShader

http://pastebin.com/ffDvsL2Y

FragmentShader

http://pastebin.com/SWT5EKAi

我们从哪里渲染和更新

http://pastebin.com/dTG6HHDX

我认为我搞砸了将着色器绑定到vbo,是吗?如果是这样,我该如何解决它......

另外,我只想在现代opengl中回答,所以没有glBegin()和glEnd()谢谢!

1 个答案:

答案 0 :(得分:0)

在你的顶点着色器中,你写了gl_Position = in_Position * transform;

这应该返回一个矩阵,而不是一个向量。鉴于您的矩形是纯白色并且您已经为颜色做了准备,我会冒你的着色器根本无法编译的风险。

gl_Position = transform * in_Position;是使用矩阵转换向量的正确顺序。