共用方式為


glFrustum 函式

glFrustum函式會將目前的矩陣乘以檢視方塊矩陣。

語法

void WINAPI glFrustum(
   GLdouble left,
   GLdouble right,
   GLdouble bottom,
   GLdouble top,
   GLdouble zNear,
   GLdouble zFar
);

參數

left

左垂直裁剪平面的座標。

right

右垂直裁剪平面的座標。

底部

底端水準裁剪平面的座標。

top

底端水準裁剪平面的座標。

zNear

接近深度裁剪平面的距離。 必須是正數。

zFar

遠深度裁剪平面的距離。 必須是正數。

傳回值

此函式不會傳回值。

錯誤碼

glGetError函式可以擷取下列錯誤碼。

名稱 意義
GL_INVALID_ENUM
zNearzFar 不是後置式。
GL_INVALID_OPERATION
函式是在 對 glBegin 的呼叫和 glEnd的對應呼叫之間呼叫。

備註

glFrustum函式描述產生透視投影的透視矩陣。 (zNear) 和 (zNear) 參數分別指定對應到視窗左下角和右上角的近裁剪平面點,假設眼睛位於 (0,0,0,0) 。 zFar參數會指定遠裁剪平面的位置。 zNearzFar都必須是正數。 下圖顯示對應的矩陣。

顯示產生透視投影之透視矩陣的圖表。 顯示描述透視矩陣之 glFrustum 函數的方程式。

glFrustum函式會將目前的矩陣乘以這個矩陣,而結果會取代目前的矩陣。 也就是說,如果 M 是目前的矩陣,而 F 是 Frustum 檢視方塊矩陣, 則 glFrustum 會將 M 取代為 M F。

使用 glPushMatrixglPopMatrix 來儲存和還原目前的矩陣堆疊。

深度緩衝區有效位數會受到為 zNearzFar指定的值所影響。 zFarzNear的比例越大,深度緩衝區會比較不有效,可以區別彼此接近的介面。 如果

顯示遠近比率的方程式。

大約 遺失 2 (r) 位深度緩衝區精確度。 因為 r 接近無限大,因為 zNear 接近零,所以您不應該將 zNear 設定為零。

下列函式會擷取 glFrustum的相關資訊:

glGet with argument GL_MATRIX_MODE

glGet with argument GL_MODELVIEW_MATRIX

glGet with argument GL_PROJECTION_MATRIX

具有引數的glGet GL_TEXTURE_MATRIX

規格需求

需求
最低支援的用戶端
Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器
Windows 2000 Server [僅限桌面應用程式]
標頭
Gl.h
程式庫
Opengl32.lib
DLL
Opengl32.dll

另請參閱

glBegin

glEnd

glGet

glMatrixMode

glMultMatrix

glOrtho

glPopMatrix

glPushMatrix

glViewport