繁体   English   中英

透视投影公式问题

[英]perspective projection formula problem

我正在开发3D Flash游戏,我的问题很简单。

如何将3d点转换为2d点?

我在互联网中找到了下一个公式(相机位于原点)

  1. x'= x / zy'= y / z
  2. 比率=焦距/(焦距+ z)
    x = x *比率
    y = y *比率

但是当z小于零(z <0)时,这些公式给我带来奇怪的结果

我需要建立从A(100,100,100)到B(100,100; -100)的直线

我怎么解决这个问题?

考虑一下z = 0时的含义。 这意味着您正在执行x / 0,这很不好-在这种情况下,这意味着该点与相机占据的位置相同! 随着z的变小,这意味着这些点在相机的后面,因此根本不应该渲染它们。

您必须剔除(不渲染)“屏幕后面”的所有点。 选择一个小的z作为您的“近平面”,例如z = 1。 您必须在此z = 1平面上修剪任何几何图形,以防止错误渲染。

如果是点,则可以检查point.z < 1 对于线,则更为复杂-必须计算线与z = 1平面的交点,并在必要时对其进行裁剪。

您可以在此处找到一些有关剪线的信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM