我一直在尝试制作一个 3d 渲染器软件(只是出于学习目的)所以当我阅读这篇文章时:http://en.wikipedia.org/wiki/3D_projection#Perspective_projection 我对关于 ( e ) 的部分感到困惑,它是观众相对于显示表面的位置,我不明白那是什么意思或我该如何计算它,所以请帮助并告诉我它与相机位置之间的差异
提前致谢
奥马尔·埃马德·埃尔丁
最佳答案
请原谅我用复制和粘贴打开,e 是观看者相对于显示表面的位置。因此,在计算机图形的情况下,它是从屏幕上定义的点(投影中心,最有用)到看屏幕的人(我们假装是一个点)的矢量。
您通常无法计算它,因为即使您假设只有一个人在看屏幕,您也可能知道他们坐在哪里。有时您可以通过网络摄像头或其他类似设备跟踪眼睛,但通常不能。
一旦你有了一个相对于相机的点 (x, y, z),大多数库只需执行以下计算来计算出该点在屏幕空间中的位置:
x' = (half width of viewport) * x / z
y' = (half height of viewport) * y / z
假定观看者位于屏幕中央并向后一个单位,假设相机空间中的位置已经缩放以应用一些给定的水平和垂直视野。我还将原点置于屏幕中央。
关于3d - 关于 3D 投影的问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7356661/