Flash 透视投影公式问题
我正在开发3d flash游戏,我的问题很简单 如何将三维点转换为二维点 我在互联网上找到了下一个公式(相机位于原点)Flash 透视投影公式问题,flash,3d,projection,Flash,3d,Projection,我正在开发3d flash游戏,我的问题很简单 如何将三维点转换为二维点 我在互联网上找到了下一个公式(相机位于原点) x'=x/z y'=y/z 比率=焦距/(焦距+z) x=x*比率 y=y*比值 但是当z小于0时,这些公式给了我奇怪的结果(z考虑z=0时的含义。这意味着你在做x/0,这是不好的——在这种情况下,这意味着点与你的相机占据相同的位置!随着z变小,这意味着点在你的相机后面,所以你根本不应该渲染它们 必须剔除(而不是渲染)“屏幕后面”的任何点。选择一个小z作为“近平面”,例如z=1
x=x*比率
y=y*比值
但是当z小于0时,这些公式给了我奇怪的结果(z考虑z=0时的含义。这意味着你在做x/0,这是不好的——在这种情况下,这意味着点与你的相机占据相同的位置!随着z变小,这意味着点在你的相机后面,所以你根本不应该渲染它们 必须剔除(而不是渲染)“屏幕后面”的任何点。选择一个小z作为“近平面”,例如z=1。必须在此z=1平面上剪裁任何几何体,以防止错误渲染 对于点,可以检查
点.z<1
。对于线,它更复杂——必须计算线与z=1平面的交点,必要时进行剪裁
你可以在线剪辑上找到一些信息。考虑一下z=0时的含义。这意味着你在做x/0,这是不好的——在这种情况下,这意味着点与你的相机占据相同的位置!随着z变小,这意味着点在你的相机后面,所以你根本不应该渲染它们 必须剔除(而不是渲染)“屏幕后面”的任何点。选择一个小z作为“近平面”,例如z=1。必须在此z=1平面上剪裁任何几何体,以防止错误渲染 对于点,可以检查
点.z<1
。对于线,它更复杂——必须计算线与z=1平面的交点,必要时进行剪裁
你可以在线剪辑上找到一些信息