Opengl es 翻译成透视图

Opengl es 翻译成透视图,opengl-es,opengl-es-2.0,projection,perspective,orthographic,Opengl Es,Opengl Es 2.0,Projection,Perspective,Orthographic,我有两个点来描述直线,问题是我知道一个点的坐标用于正交矩阵(即150x250x0),第二个点的坐标用于透视矩阵(0.5x0.5x20.0f)。我想将正交坐标转换为透视,这样我就可以使用glsl着色器绘制一条线:)。如何完成此任务?您需要将一个顶点移动到其他矩阵空间。例如,让我们将150x250x0从正交空间移动到透视空间。为此,需要通过反向正交矩阵变换顶点。我不知道你们用的是什么数学库,也许它已经有了矩阵求逆的功能。否则,请使用此链接中的代码:。完成此步骤后,顶点位于世界空间中 PS:矩阵求逆需

我有两个点来描述直线,问题是我知道一个点的坐标用于正交矩阵(即150x250x0),第二个点的坐标用于透视矩阵(0.5x0.5x20.0f)。我想将正交坐标转换为透视,这样我就可以使用glsl着色器绘制一条线:)。如何完成此任务?

您需要将一个顶点移动到其他矩阵空间。例如,让我们将150x250x0从正交空间移动到透视空间。为此,需要通过反向正交矩阵变换顶点。我不知道你们用的是什么数学库,也许它已经有了矩阵求逆的功能。否则,请使用此链接中的代码:。完成此步骤后,顶点位于世界空间中


PS:矩阵求逆需要大量的计算时间。如果您可以跟踪变换步骤(平移、旋转和缩放),更简单的方法应该是分别反转这些步骤,然后组成一个矩阵。

我已经找到了其他解决方案,我刚刚通过使用矩阵的宽度和高度对其进行归一化,将150x250移动到0-1空间。太简单了……:)