函數(shù)原型 gluPerspective(GLdouble fovy,GLdouble aspect,GLdouble zNear,GLdouble zFar)
首先得設(shè)置gluPerspective,來(lái)看看它的參數(shù)都表示什么意思 fovy,這個(gè)最難理解,我的理解是,眼睛睜開的角度,即,視角的大小,如果設(shè)置為0,相當(dāng)你閉上眼睛了,所以什么也看不到,如果為180,那么可以認(rèn)為你的視界很廣闊, aspect,這個(gè)好理解,就是實(shí)際窗口的縱橫比,即x/y zNear,這個(gè)呢,表示你近處,的裁面, zFar表示遠(yuǎn)處的裁面,
如果還沒有理解就繼續(xù)看, 我們知道,遠(yuǎn)處的東西看起來(lái)要小一些,近處的東西看起來(lái)會(huì)大一些,這就是透視原理 如下圖所示 假設(shè)那兩條線表示公路,理論上講,它們的兩條邊是平行的, 但現(xiàn)實(shí)情況中,它們?cè)谶h(yuǎn)方(可以無(wú)限遠(yuǎn))總要相交于一點(diǎn), 實(shí)際線段AB的長(zhǎng)度=CD的長(zhǎng)度,只是在此例中使用了透視角,故會(huì)有如上的效果,是不是很接近現(xiàn)實(shí)的情況?
結(jié)合我們剛才這兩個(gè)函數(shù) zNear,眼睛距離近處的距離,假設(shè)為10米遠(yuǎn),請(qǐng)不要設(shè)置為負(fù)值,OpenGl就傻了,不知道怎么算了, zFar表示遠(yuǎn)處的裁面,假設(shè)為1000米遠(yuǎn), 就是這兩個(gè)參數(shù)的意義了,
再解釋下那個(gè)"眼睛睜開的角度"是什么意思, 首先假設(shè)我們現(xiàn)在距離物體有50個(gè)單位距離遠(yuǎn)的位置, 在眼睛睜開角度設(shè)置為45時(shí),請(qǐng)看大屏幕:

我們可以看到,在遠(yuǎn)處一個(gè)球,,很好玩哈, 現(xiàn)在我們將眼睛再?gòu)堥_點(diǎn)看,將"眼睛睜開的角度"設(shè)置為178 (180度表示平角,那時(shí)候我們將什么也看不到,眼睛睜太大了,眼大無(wú)神)

我們只看到一個(gè)點(diǎn),,,,,,,,,,,,,,,,,,,,,,,,,,, 因?yàn)槲覀兛吹姆秶罅?這個(gè)球本身大小沒有改變,但是它在我們的"視界"內(nèi)太小了,
反之,我們將眼睛閉小些,改為1度看看會(huì)出現(xiàn)什么情況呢?
在我們距離該物體3000距離遠(yuǎn),"眼睛睜開的角度"為1時(shí),我們似乎走進(jìn)了這個(gè)球內(nèi),這個(gè)是不是類似于相機(jī)的焦距?
當(dāng)我們將"透視角"設(shè)置為0時(shí),我們相當(dāng)于閉上雙眼,這個(gè)世界清靜了,
我們什么也看不到,,,,,,,,,
|