OpenGL矩阵问题

时间:2012-10-19 21:26:58

标签: c cocoa opengl viewport projection-matrix

我有一个NSOpenGLView设置并且运行良好,但我需要绘制一个矩形,始终完全填充视图并且不会被剪裁(这有意义吗?)。我的视图总是大小为1100x850像素。基本上,我想要做的是找到一种方法来确保y值为0.4总是在视图的最顶部绘制对象,在底部绘制-0.4等。我也需要它有一些透视感,所以我不能做glOrtho

有办法做到这一点吗?

如果我没有解释清楚,这就是我的意思:

---------
|   |   |
|   |   |
---------
  • 该中心线的x值始终为0.0。

  • 左边的x值为-0.55,右边的值为0.55

  • 顶行的y值为0.4,底部的值为-0.4

所以,我需要一个带有以下顶点的矩形来完全填充,但不要离开,屏幕:

{
  -0.55,  0.40, 0.00,
   0.55,  0.40, 0.00,
   0.55, -0.40, 0.00,
  -0.55, -0.40, 0.00,
}

1 个答案:

答案 0 :(得分:2)

不要求您绘制的所有内容都使用相同的投影矩阵。使用透视矩阵绘制场景的“透视”部分,然后切换到正交矩阵并绘制四边形。

确保禁用第二部分的深度测试,因为与透视值相比,正交值没有任何意义。