glFrustum 函式
glFrustum函式會將目前的矩陣乘以檢視方塊矩陣。
語法
void WINAPI glFrustum(
GLdouble left,
GLdouble right,
GLdouble bottom,
GLdouble top,
GLdouble zNear,
GLdouble zFar
);
參數
-
left
-
左垂直裁剪平面的座標。
-
right
-
右垂直裁剪平面的座標。
-
底部
-
底端水準裁剪平面的座標。
-
top
-
底端水準裁剪平面的座標。
-
zNear
-
接近深度裁剪平面的距離。 必須是正數。
-
zFar
-
遠深度裁剪平面的距離。 必須是正數。
傳回值
此函式不會傳回值。
錯誤碼
glGetError函式可以擷取下列錯誤碼。
名稱 | 意義 |
---|---|
|
zNear 或 zFar 不是後置式。 |
|
函式是在 對 glBegin 的呼叫和 glEnd的對應呼叫之間呼叫。 |
備註
glFrustum函式描述產生透視投影的透視矩陣。 (左、 下、 zNear) 和 (右、 上、 zNear) 參數分別指定對應到視窗左下角和右上角的近裁剪平面點,假設眼睛位於 (0,0,0,0) 。 zFar參數會指定遠裁剪平面的位置。 zNear和zFar都必須是正數。 下圖顯示對應的矩陣。
glFrustum函式會將目前的矩陣乘以這個矩陣,而結果會取代目前的矩陣。 也就是說,如果 M 是目前的矩陣,而 F 是 Frustum 檢視方塊矩陣, 則 glFrustum 會將 M 取代為 M F。
使用 glPushMatrix 和 glPopMatrix 來儲存和還原目前的矩陣堆疊。
深度緩衝區有效位數會受到為 zNear 和 zFar指定的值所影響。 zFar與zNear的比例越大,深度緩衝區會比較不有效,可以區別彼此接近的介面。 如果
大約 會遺失 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 [僅限桌面應用程式] |
標頭 |
|
程式庫 |
|
DLL |
|