java - OpenGL 中模型 View 矩阵变换的现代方法?

标签 java performance opengl matrix lwjgl

我最近开始学习 OpenGL,从即时模式、glPush/PopMatrix 和 glTranslate/Rotate/Scale 函数开始。我已切换到顶点缓冲区对象来存储几何图形,但我仍在使用推/弹出矩阵和变换函数。是否有更新、更有效的方法来执行这些操作?

我听说过 glMultMatrix,但一些消息来源表示这效率较低。

如果有相关的话,我正在使用 LWJGL 和 Java 进行渲染。

编辑:有谁知道调用 glViewport 和 gluPerspective 以及其他标准初始化函数对性能的影响?有人告诉我,每次更新时调用这些初始化函数以及渲染代码通常是一种很好的做法。

最佳答案

对于现代 OpenGL,您需要编写一个顶点着色器,并将每个顶点乘以其中适当的变换矩阵。您需要传递所需的矩阵(可能是模型、 View 和投影)。您可以根据需要在每个渲染 channel 的 CPU 上计算这些矩阵。这意味着您不需要 gluPerspective。您可能只需要调用 glViewport 一次,除非您尝试划分窗口并在每个部分绘制不同的内容。但我不认为它会导致任何性能问题。您可以随时查看文件以进行确定。

关于java - OpenGL 中模型 View 矩阵变换的现代方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23437640/

相关文章:

java - 带有彩色项目和焦点的彩色 jcombobox

arrays - 在二维空间中找到一个圆内的所有点

python - 如何加速一个热编码器代码

c++ - 如何保存帧缓冲区然后将其取回

c++ - OpenGL 着色器与 CUDA

opengl - 使用 glEnable(GL_DEPTH_TEST) 显示不正确

java - jxls - 使用动态图像创建 Excel 文件

java - opencv/javacv中如何使用模板匹配来识别不同大小的对象?

java - 如何选择 java swing JComboBox 或任何其他类似 jComponent 中的所有项目

java - 读取远程 XML 文件或将其复制到语言环境(使用 Java)?