Opengl es 我面前的坐标(webgl/opengl)

Opengl es 我面前的坐标(webgl/opengl),opengl-es,webgl,Opengl Es,Webgl,我正在学习webgl,半天来我一直在解决这个问题 我以这种方式进入我的场景: mat4.rotate(mvMatrix, degToRad(-angle), [0, 1, 0]); mat4.translate(mvMatrix, [-currentX, 0, -currentZ]); 我应该如何获得前面一个点的坐标(x/z)(比如10个单位)?模型视图矩阵是从模型局部空间到视图空间的变换矩阵。现在,根据你感兴趣的空间,“你面前的10个单位”可以是任何地方。但假设您想知道前面10个单元的点在

我正在学习webgl,半天来我一直在解决这个问题

我以这种方式进入我的场景:

mat4.rotate(mvMatrix, degToRad(-angle), [0, 1, 0]); 
mat4.translate(mvMatrix, [-currentX, 0, -currentZ]);

我应该如何获得前面一个点的坐标(x/z)(比如10个单位)?

模型视图矩阵是从模型局部空间到视图空间的变换矩阵。现在,根据你感兴趣的空间,“你面前的10个单位”可以是任何地方。但假设您想知道前面10个单元的点在模型空间中的位置。没那么简单

查看器前面的点10单位位于(0,0,-10)处的视图空间中。所以你现在要做的就是应用逆变换,也就是说,用逆矩阵乘以向量:

mat4.inverse(mvMatrix) * vec4(0,0,-10,1);
如果您想知道最后一个
1
元素来自何处,以及为什么使用4元素向量作为三维坐标(这是您真正应该想知道的事情),请阅读