【发布时间】:2013-01-12 01:38:38
【问题描述】:
我遇到的问题是我无法在 OpenGL 中获得“视线”矢量。我做了一些研究,发现它应该是转换后的 Z 向量,但它不想工作。我有这段代码来检索块的速度(我希望它从“相机”向前移动),但它一直移动与相机无关,但与渲染世界相比始终以相同的方式移动:
GLfloat matrix[16];
glGetFloatv (GL_MODELVIEW_MATRIX, matrix);
GLfloat d = sqrt( matrix[8]*matrix[8] + matrix[9]*matrix[9] + matrix[10]*matrix[10]);
xmov = matrix[8]/d;
ymov = matrix[9]/d;
zmov = matrix[10]/d;
我做错了什么?
【问题讨论】:
-
好吧,如果它是相对于世界绘制的,那么相对于世界移动它。否则,我发现将 ModelView 拆分为 Model 和 View 矩阵很有用,并在需要时忽略后者(所以是的,它将是 Z 坐标)
-
它是在世界上的相机位置绘制的。现在我希望它以相机“看”的方式移动,但它始终相对于场景而不是相机移动。对不起,我是 OpenGl 的新手,也许是 idk 。