如何在Matrix4f中获取当前的OpenGL转换矩阵?

时间:2015-07-02 10:27:07

标签: opengl lwjgl

出于照明的目的,我需要获得当前的变换矩阵。

例如,Matrix4f transMatrix = Get_OpenGL_Transformation_Matrix

论坛上有各种各样的答案,但这些答案要么不起作用,要么让人们不同意。

2 个答案:

答案 0 :(得分:2)

这纯粹来自文档,我从未使用过LWJGL。但我相信这样的事情应该有效:

// Create FloatBuffer that can hold 16 values.
FloatBuffer buf = BufferUtils.createFloatBuffer(16);

// Get current modelview matrix:
GL11.glGetFloat(GL11.GL_MODELVIEW_MATRIX, buf);

// Rewind buffer. Not sure if this is needed, but it can't hurt.
buf.rewind();

// Create a Matrix4f.
Matrix4f mat = new Matrix4f();

// Load matrix from buf into the Matrix4f.
mat.load(buf);

答案 1 :(得分:1)

简单。

float[16] transMatrix;
glGetFloatv(GL_MODELVIEW_MATRIX, transMatrix);