我已经成功地在 golang 中制作了一个 opengl 3.x 动画。然而; 只有在渲染了 20k 纹理后,逐帧更新才会明显变慢。所有精灵所做的只是从屏幕左侧移动到右侧。请记住,它们都在彼此之上,因为我懒得随机化位置。我有一台更新的 PC,可以在高设置下运行 GTA5,但无法在 opengl3 环境中显示 20k 精灵(带纹理的四边形)??我一定在这里做错了什么。也许我需要将所有顶点打包在一个 VBO 中,而不是为每个对象打包一个新的 vbo?我也绑定了每个对象。我不确定是什么导致了这个瓶颈。有人可以帮忙,因为我不知道从这里去哪里?我已经附上了我的代码作为参考,任何人都可以提供一些关于在 opengl3 中加速渲染 20k 精灵的提示:http ://pastebin.com/SHQtRPn7
3 回答
料青山看我应如是
TA贡献1772条经验 获得超8个赞
我看到的一个问题是您每帧都创建一个 vbo。我不确定你要做什么。如果您尝试更新 vbo,请改用 glBufferSubData()。glBufferData() 每次调用时都会创建一个新缓冲区,因此它肯定会比 glBufferSubData() 更昂贵。glBufferSubData() 只是修改/更新你的 vbo。这应该会提高您的fps。
- 3 回答
- 0 关注
- 152 浏览
添加回答
举报
0/150
提交
取消