3d 使用正交矩阵将三维坐标转换为二维屏幕坐标

3d 使用正交矩阵将三维坐标转换为二维屏幕坐标,3d,isometric,orthographic,3d,Isometric,Orthographic,我有一个在3D空间中存储顶点的场景。我想做的是从等轴测的角度正交地渲染这些顶点 在我所有的搜索中,一个显而易见的答案就是使用一个像OpenGL中那样的正交相机 问题是我想从头开始写这篇文章来帮助我理解,所以我真的在寻找相机内部的理论 如何在3D空间中获取任意点,并使用正交矩阵从中获取屏幕坐标 目前我有我的正交矩阵: [2/r-l, 0, 0, r+l/r-l] [0, 2/t-b, 0, 0, t+b/t-b] [0, 0, 2/f-n, 0, f+n/f-n] [0, 0, 0, 1]

我有一个在3D空间中存储顶点的场景。我想做的是从等轴测的角度正交地渲染这些顶点

在我所有的搜索中,一个显而易见的答案就是使用一个像OpenGL中那样的正交相机

问题是我想从头开始写这篇文章来帮助我理解,所以我真的在寻找相机内部的理论

如何在3D空间中获取任意点,并使用正交矩阵从中获取屏幕坐标

目前我有我的正交矩阵:

[2/r-l, 0, 0, r+l/r-l]

[0, 2/t-b, 0, 0, t+b/t-b]

[0, 0, 2/f-n, 0, f+n/f-n]

[0, 0, 0, 1]
其中r为右,l为左,t为顶部,b为底部,f为远,n为近

我把绕y轴的旋转附加到这个矩阵上,然后将顶点坐标乘以这个矩阵,我相信这个矩阵会将我的世界空间顶点转换成我的视图空间坐标

但它仍然是一个3D向量,所以我很好奇如何外推2D屏幕坐标

任何帮助都会很好

谢谢, Jon

一篇很好的文章,解释了OpenGL是如何做到这一点的