使用正交矩阵将 3D 坐标转换为 2D 屏幕坐标
Posted
技术标签:
【中文标题】使用正交矩阵将 3D 坐标转换为 2D 屏幕坐标【英文标题】:3D Coordinates to 2D Screen Coordinates with an Orthographic Matrix 【发布时间】:2010-07-05 20:02:16 【问题描述】:我有一个在 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 屏幕坐标。
任何帮助都会很棒。
谢谢, 乔恩
【问题讨论】:
【参考方案1】:Here's 一篇很棒的文章,解释了 OpenGL 是如何做到的。
【讨论】:
以上是关于使用正交矩阵将 3D 坐标转换为 2D 屏幕坐标的主要内容,如果未能解决你的问题,请参考以下文章