小编典典

如何在2D中绘制透视正确的网格

algorithm

我有一个应用程序,可以在图像/照片的顶部定义一个现实世界的矩形,当然在2D中它可能不是矩形,因为您是从一个角度看的。

问题是,说矩形需要在上面绘制网格线,例如,如果矩形是3x5,那么我需要从侧面1到侧面3绘制2条线,从侧面2到侧面4绘制4条线。

截至目前,我将每条线分成等距的部分,以获取所有网格线的起点和终点。但是,矩形的角度越大,这些线就越“不正确”,因为距离您越远的水平线应该越靠近。

有人知道我应该搜索的算法的名称吗?

是的,我知道您可以在3D模式下执行此操作,但是对于该特定应用程序,我仅限于2D模式。


阅读 430

收藏
2020-07-28

共1个答案

小编典典

这是解决方案。

基本思想是,您可以通过对角线连接角找到矩形的正确透视“中心”。两条结果线的交点是透视正确的中心。从那里将矩形细分为四个较小的矩形,然后重复此过程。次数取决于您想要的精度。您可以细分到像素大小以下,以获得有效的完美视角。

然后,在子矩形中,仅应用标准的未校正“纹理”三角形,矩形或任何其他形状。

您无需执行构建“真实” 3d世界的复杂麻烦即可执行此算法。如果您 确实
有一个真实的3D世界模型,但是您的textriangles不能在硬件中进行透视校正,或者您需要一种高性能的方法来获得透视正确的平面,而又不会出现逐像素渲染的技巧,这也非常有用。

2020-07-28