OpenGL透視函數(shù)

OpenGL透視函數(shù)

ID:38281547

大小:100.01 KB

頁(yè)數(shù):3頁(yè)

時(shí)間:2019-06-07

OpenGL透視函數(shù)_第1頁(yè)
OpenGL透視函數(shù)_第2頁(yè)
OpenGL透視函數(shù)_第3頁(yè)
資源描述:

《OpenGL透視函數(shù)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。

1、OpenGL入門(mén)紀(jì)錄--2.透視函數(shù)glFrustum(),gluPerspective()函數(shù)用法和glOrtho()函數(shù)用法在OpenGL中,如果想對(duì)模型進(jìn)行操作,就要對(duì)這個(gè)模型的狀態(tài)(當(dāng)前的矩陣)乘上這個(gè)操作對(duì)應(yīng)的一個(gè)矩陣.如果乘以變換矩陣(平移,縮放,旋轉(zhuǎn)),那相乘之后,模型的位置被變換;如果乘以投影矩陣(將3D物體投影到2D平面),相乘后,模型的投影方式被設(shè)置;如果乘以紋理矩陣(),模型的紋理方式被設(shè)置.而用來(lái)指定乘以什么類型的矩陣,就是glMatriMode(GLenummode);glMatrixMode有3種模式:GL_PROJECTION投影,

2、GL_MODELVIEW模型視圖,GL_TEXTURE紋理.所以,在操作投影矩陣以前,需要調(diào)用函數(shù):glMatrixMode(GL_PROJECTION);//將當(dāng)前矩陣指定為投影矩陣然后把矩陣設(shè)為單位矩陣:glLoadIdentity();然后調(diào)用glFrustum()或gluPerspective(),它們生成的矩陣會(huì)與當(dāng)前的矩陣相乘,生成透視的效果;1.glFrustum()這個(gè)函數(shù)原型為:  voidglFrustum(GLdoubleleft,GLdoubleRight,GLdoublebottom,GLdoubletop,GLdoublenear,G

3、Ldoublefar);創(chuàng)建一個(gè)透視型的視景體。其操作是創(chuàng)建一個(gè)透視投影的矩陣,并且用這個(gè)矩陣乘以當(dāng)前矩陣。這個(gè)函數(shù)的參數(shù)只定義近裁剪平面的左下角點(diǎn)和右上角點(diǎn)的三維空間坐標(biāo),即(left,bottom,-near)和(right,top,-near);最后一個(gè)參數(shù)far是遠(yuǎn)裁剪平面的離視點(diǎn)的距離值,其左下角點(diǎn)和右上角點(diǎn)空間坐標(biāo)由函數(shù)根據(jù)透視投影原理自動(dòng)生成。near和far表示離視點(diǎn)的遠(yuǎn)近,它們總為正值(near/far必須>0)。2.gluPerspective()這個(gè)函數(shù)原型為:voidgluPerspective(GLdoublefovy,GLdouble

4、aspect,GLdoublezNear,GLdoublezFar);  創(chuàng)建一個(gè)對(duì)稱的透視型視景體,但它的參數(shù)定義于前面的不同,如圖。其操作是創(chuàng)建一個(gè)對(duì)稱的透視投影矩陣,并且用這個(gè)矩陣乘以當(dāng)前矩陣。參數(shù)fovy定義視野在Y-Z平面的角度,范圍是[0.0,180.0];參數(shù)aspect是投影平面寬度與高度的比率;參數(shù)Near和Far分別是近遠(yuǎn)裁剪面到視點(diǎn)(沿Z負(fù)軸)的距離,它們總為正值?! ∫陨蟽蓚€(gè)函數(shù)缺省時(shí),視點(diǎn)都在原點(diǎn),視線沿Z軸指向負(fù)方向。voidmydisplay(void){????......???glMatrixMode(GL_PROJECTION

5、);???LoadIdentity();???Frustum(left,right,bottom,top,near,far);???......}3.glOrtho()這個(gè)函數(shù)的原型為:glOrtho(GLdoubleleft,GLdoubleright,GLdoublebottom,GLdoubletop,GLdoublenear,GLdoublefar)六個(gè)參數(shù),前兩個(gè)是x軸最小坐標(biāo)和最大坐標(biāo),中間兩個(gè)是y軸,最后兩個(gè)是z軸值它創(chuàng)建一個(gè)平行視景體(就是一個(gè)長(zhǎng)方體空間區(qū)域)。實(shí)際上這個(gè)函數(shù)的操作是創(chuàng)建一個(gè)正射投影矩陣,并且用這個(gè)矩陣乘以當(dāng)前矩陣。其中近裁剪平面

6、是一個(gè)矩形,矩形左下角點(diǎn)三維空間坐標(biāo)是(left,bottom,-near),右上角點(diǎn)是(right,top,-near);遠(yuǎn)裁剪平面也是一個(gè)矩形,左下角點(diǎn)空間坐標(biāo)是(left,bottom,-far),右上角點(diǎn)是(right,top,-far)。注意,所有的near和far值同時(shí)為正或同時(shí)為負(fù),值不能相同。如果沒(méi)有其他變換,正射投影的方向平行于Z軸,且視點(diǎn)朝向Z負(fù)軸。這意味著物體在視點(diǎn)前面時(shí)far和near都為負(fù)值,物體在視點(diǎn)后面時(shí)far和near都為正值。只有在視景體里的物體才能顯示出來(lái)。如果最后兩個(gè)值是(0,0),也就是near和far值相同了,視景體深度

7、沒(méi)有了,整個(gè)視景體都被壓成個(gè)平面了,就會(huì)顯示不正確。

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。