0

我正在阅读来自 WWDC2010 的示例代码 GLVideoFrame。在此示例中,它具有如下代码:

static const GLfloat squareVertices[] = {
    -0.5f,  -0.33f,
     0.5f,  -0.33f,
    -0.5f,   0.33f,
     0.5f,   0.33f,
};
...
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(0.0f, (GLfloat)(sinf(transY)/2.0f), 0.0f);
transY += 0.075f;

...
glVertexPointer(2, GL_FLOAT, 0, squareVertices);

请注意,此代码不会调用任何函数,如 glFrustum 或 glOrtho 用于 openGL 投影设置。

通过仅调用 gLoadIdentity(),“默认”视图体积是多少?

它将是透视投影还是正交投影?

编辑:更具体地说,视图体积是“在所有三个轴上从 -1 到 1”的立方体吗?

4

1 回答 1

0

OpenGL 假设在 ModelView 和 Projection 变换之后,所有可见元素都在剪辑空间(或 NDC 空间)中;它使用立方体[-1;+1]^3。矩阵内容完全由您负责。由于您加载了单位矩阵,因此根本没有投影。

于 2012-04-25T06:15:05.973 回答