假设我有一个 2D OpenGL 应用程序,它使用简单的正交投影,其中 (0,0,0) 对应于屏幕的左下角,(480,640,0) 对应于右上角。
现在说我想让我的 2D 应用程序有点 3D,即引入小的 3D 效果,例如从屏幕上方落下的东西。为此,我需要一个透视投影,其中通常渲染平面 (z=0) 上的所有内容看起来都与使用正交投影时相同。
任何人都知道如何创建这样的投影?数学似乎有点超出我的想象。大概我希望我的截锥体的远平面为 z=0,其中 (0,0,0) 对应于左下角的像素,但 glFrustum() 等人只让我指定近平面的坐标。如何选择合理的近值和远值?我尝试使用 glFrustum() 和 gluLookAt() 从屏幕上方的某个点查看原点,但是如何选择视点?