首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >平行投影是透视投影的特例。

平行投影是透视投影的特例。
EN

Computer Graphics用户
提问于 2021-10-27 10:11:27
回答 2查看 196关注 0票数 2

我与@David的关于透视和并行投影的第一第二的答案同步。从第一个问题中我了解到,屏幕上的图像通常是以水平和垂直坐标描述的,即2D点。但是从第二个问题中,我知道屏幕上的图像是真实的,如果它们使用具有三维坐标的透视投影。

我的困惑是,我们如何通过透视投影在屏幕上显示带有2D点的图像?

(x,y,z)投影到视图平面上的(x_p,y_p,z_{vp})位置。由于视图平面位于z_{vp}沿z_v轴的位置。因此,当z_{vp}=0投影仪(投影向量)不收敛于平行投影中的投影参考点时。但是在透视投影中,当z_{vp}=0时,它被简化为平行投影,但是投影仪集中在投影的中心。以上这些概念我是否正确?

透视投影中的消失点,即三维坐标,可以用投影平面表示为(x, y, z, 0).,对吗?

EN

回答 2

Computer Graphics用户

发布于 2021-10-27 22:35:37

让我们试着稍微统治一些东西吧。在实际应用中,我们不处理infinites。因为这意味着我们需要用某种象征性的解决方法来解决我们所有的问题。我们负担不起在许多实际应用中这样做的费用。

由于这些实际的考虑,我需要有一个近和远的飞机为我的相机光栅。如果我要绘制某种矢量图,我很可能不会有无限个物体(或者至少在显微镜中处理这个问题),如果我们要进行某种跟踪,我们将很难推导出接近无穷远的交叉点。

另外,出于实际考虑,我们通常不会*将数据转换为2D坐标。我们在概念上所做的是转换这些点,使它们看起来像是从z方向的平行投影看上去像透视投影。然后我们使用这个视图构建我们需要的数据。在此构建过程中,我们可以自由地丢弃任何我们不需要的数据。因此,把这看作是初步的排序,这样我就可以很容易地完成我想做的事情。

现在,我们通常可以访问转换后的数据和未转换的数据,因此非常关心从投影中推断一些东西,我们可以直接从3D空间或场景图中读取它,这是一个优先事项。但是z甚至是第四个组件数据对于构建我的下一个阶段原语都是有用的。

在这一点上,我们已经完成了投影,现在我们可以开始构建输出。但这和你到目前为止问的数学没有任何关系。下一个阶段是关于三角形重心坐标,阴影,求交,深度排序等。你所经历的数学对这个步骤并没有真正的帮助。

*很难概括某人可能在做这件事,但我不会这么做,因为这是在浪费我的时间。

PS:没有必要知道消失点在哪里,因为投影阶段已经解决了线的两端。

票数 0
EN

Computer Graphics用户

发布于 2022-11-24 08:26:38

所有的观看投影都是从3D到2D。平行投影只是透视的极限情况。

从焦点(0, 0, -f)写出射线方程,并与观察平面z=0相交,你有

\begin{cases}x'=\dfrac{fx}{f+z}\\y'=\dfrac{fy}{f+z}\end{cases}中,分子中的放大系数f用距离来补偿缩小。

如果让f趋于无穷大,则方程简化为

\begin{cases}x'=x\\y'=y\end{cases}

这意味着取消了深度的影响,通过降低z坐标来实现投影。

增编:

有一种方法可以使用4D齐次坐标将透视投影替换为平行投影,并将点表示为\left(x,y,z,1+\dfrac zf\right),这相当于\left(\dfrac{fx}{f+z},\dfrac{fy}{f+z},\dfrac{fz}{f+z},1\right)。通过考虑3D组件,您可以获得一个变形的3D场景,您可以使用并行投影来渲染,而深度信息则被保留,以允许隐藏的部分被移除。同样,当f趋向于无穷大时,转换就变得微不足道。

票数 0
EN
页面原文内容由Computer Graphics提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://computergraphics.stackexchange.com/questions/12286

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档