glFrustum 函数
glFrustum 函数将当前矩阵乘以透视矩阵。
void WINAPI glFrustum(
GLdouble left,
GLdouble right,
GLdouble bottom,
GLdouble top,
GLdouble zNear,
GLdouble zFar
);
-
left
-
左垂直剪切平面的坐标。
-
right
-
右垂直剪切平面的坐标。
-
底部
-
下水平剪切平面的坐标。
-
返回页首
-
下水平剪切平面的坐标。
-
zNear
-
到近深度剪切平面的距离。 必须为正数。
-
zFar
-
到远深度剪切平面的距离。 必须为正数。
此函数不返回值。
glGetError 函数可以检索以下错误代码。
glFrustum 函数描述生成透视投影的透视矩阵。 (左、 下、 zNear) 和 (右、 上、 zNear) 参数分别指定映射到窗口左下角和右上角的近剪裁平面上的点,假设眼睛位于 (0,0,0) 。 zFar 参数指定远距剪切平面的位置。 zNear 和 zFar 都必须为正数。 下图中显示了相应的矩阵。
glFrustum 函数将当前矩阵乘以此矩阵,结果将替换当前矩阵。 也就是说,如果 M 是当前矩阵,F 是视锥透视矩阵,则 glFrustum 将 M 替换为 M F。
使用 glPushMatrix 和 glPopMatrix 保存和还原当前矩阵堆栈。
深度缓冲区精度受为 zNear 和 zFar 指定的值的影响。 zFar 与 zNear 的比率越大,深度缓冲区在区分彼此靠近的曲面方面的效率就越低。 如果
大约 对数2 (r) 位深度缓冲区精度丢失。 由于 r 接近无穷大, 因为 zNear 接近零,因此不应将 zNear 设置为零。
以下函数检索有关 glFrustum 的信息:
带参数GL_MATRIX_MODE的 glGet
带参数GL_MODELVIEW_MATRIX的 glGet
带参数GL_PROJECTION_MATRIX的 glGet
带参数GL_TEXTURE_MATRIX的 glGet
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 |
Windows 2000 Server [仅限桌面应用] |
标头 |
|
库 |
|
DLL |
|