我使用glMultMatrix完成了一系列转换。如何将矢量(nX,nY,nZ,1)乘以转换中的矩阵?如何将该矩阵与向量相乘?
pyglet.gl.lib.GLException: invalid operation
如果我使用glMultMatrix,我会遇到上述错误。我需要在glBegin和glEnd之间调用这个乘法。
答案 0 :(得分:0)
如果我正确地阅读你的问题,你想要的东西能够在当前的ModelView / Projection矩阵和你指定的矢量之间返回Matrix-vector产品的结果。
在这种情况下,OpenGL无法为您进行乘法运算。相反,您需要提取当前矩阵并自己进行乘法运算:
import numpy as np
someVector = np.array([2,3,4,5])
glMatrixMode(GL_MODELVIEW)
glMultMatrix(...)
modelViewMatrix = glGetDoublev(GL_MODELVIEW_MATRIX)
result = np.dot(modelViewMatrix, someVector)
根据您要执行的操作,您可能需要同时获取ModelView和Projection矩阵并将它们相乘。