【发布时间】:2026-01-26 23:15:02
【问题描述】:
我和我的伙伴正在尝试创建一个 2D 引擎,但我们无法让转换工作,这就是它现在的样子。我们为每个元素创建了矩阵,例如缩放、平移等。但是我们无法让四边形移动或做任何事情,我们是否犯了任何数学错误?这就是我们现在得到的,我们只是渲染 vbo 而不是使用着色器。对于着色器,我的意思是我们是 GLSL。
变换
矩阵3f
Matrix4f
VBO
基本着色器
着色器
顶点着色器
片段着色器
我们从哪里渲染和更新
我认为我搞砸了将着色器绑定到 vbo,对吗?如果是这样,我该如何解决它...
另外,我只想用现代 opengl 回答,所以没有 glBegin() 和 glEnd() 谢谢!
【问题讨论】:
-
我很好奇,因为这可能会有所帮助,但是在您开始的课程中,您是否确保在每帧之前清除屏幕?这通常在主游戏循环中使用
glClear(GL_COLOR_BUFFER_BIT);来完成。 -
我在调用渲染方法之前正在执行此操作。来自一个名为 Engine 的类。
-
无论
glClear()在哪里,都可以把它放到你的主游戏循环中。为了模拟任何类型的运动,无论是平移、变换还是反射,都需要每帧清除一次屏幕。 -
我有,我什至测试将它放在 vbo 渲染之前。你能看看它的转换是否正确吗?
标签: opengl matrix glsl lwjgl linear-algebra