0

我想做的就是创建一个视口,将平面正方形的 3D 地形映射到 2D 透视图。

想象一下,眺望一片完全平坦的田野。更远的地形块会向内倾斜,更靠近地平线,而且看起来也更短。

我已经对如何正确科学地做到这一点进行了大量研究,并遇到了这个问题:

http://en.wikipedia.org/wiki/Visual_angle

(除了这篇文章是二维的。我希望它也考虑到视口的“高度”或 z 维度)

有没有一种更简单的方法可以做到这一点并创造真实的感知,而不必编程:

-3D 射线/球体相交

- 球体上点到点的距离

我几乎要问的是,是否存在一种更简单的方法来将 3D 世界中的顶点映射到 2D 平面,同时保持真实的透视变形?

任何有用的文章或建议将不胜感激!

谢谢!

4

1 回答 1

2

执行此操作的标准方法是使用齐次坐标透视投影矩阵。这根本不需要任何距离计算:每个顶点,它需要一个 4x4 矩阵乘法和一个除法来缩放最终的 2D 点。

而且,是的,它在科学和几何上是正确的,尽管我应该指出,它假设一个平面的、类似相机的投影屏幕和一个理想的、类似针孔的镜头。如果你想要一个基于“视角”的鱼眼视图,最好的选择可能是添加桶形失真作为后期处理......

您可能应该从介绍性计算机图形文本开始,例如Alan Watt 的3D Computer Graphics。较老的“经典”著作是Foley、van Dam 等人的计算机图形学:原理与实践。

于 2012-03-29T22:07:07.980 回答