【发布时间】:2014-05-02 22:05:01
【问题描述】:
我最近开始学习 OpenGL,从立即模式、glPush/PopMatrix 和 glTranslate/Rotate/Scale 函数开始。我已经切换到顶点缓冲区对象来存储几何图形,但我仍在使用 push/pop 矩阵和变换函数。是否有更新、更有效的方法来执行这些操作?
我听说过 glMultMatrix,但一些消息来源说这效率较低。
如果完全相关,我正在使用带有 Java 的 LWJGL 进行渲染。
edit:有人知道调用 glViewport 和 gluPerspective 以及其他标准初始化函数对性能的影响吗?有人告诉我,在每次更新时调用这些初始化函数以及渲染代码通常是一种很好的做法。
【问题讨论】:
-
调用
glViewport (...)对性能没有影响。所做的只是更改绘制几何投影到的窗口的矩形。这是一个简单的坐标变换,它不会调整任何资源的大小,比如你的帧缓冲区或任何东西。 -
您可能希望将矩阵作为制服传递给顶点着色器。这是一个很长的解释,所以你最好在谷歌上搜索 opengl 3.3 教程。我强烈建议从一开始就找到一个好的,以确保您不会将固定功能与现代 opengl 混合使用
标签: java performance opengl matrix lwjgl