14 、、、、 OpenGL --- 透視與光效透視與光效透視與光效透視與光效

14 、、、、 OpenGL --- 透視與光效透視與光效透視與光效透視與光效

ID:37728241

大?。?85.15 KB

頁數(shù):34頁

時(shí)間:2019-05-29

14 、、、、 OpenGL --- 透視與光效透視與光效透視與光效透視與光效_第1頁
14 、、、、 OpenGL --- 透視與光效透視與光效透視與光效透視與光效_第2頁
14 、、、、 OpenGL --- 透視與光效透視與光效透視與光效透視與光效_第3頁
14 、、、、 OpenGL --- 透視與光效透視與光效透視與光效透視與光效_第4頁
14 、、、、 OpenGL --- 透視與光效透視與光效透視與光效透視與光效_第5頁
資源描述:

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

1、手機(jī)應(yīng)用平臺(tái)軟件開發(fā)14、OpenGL---透視與光效1OpenGL---透視OpenGLES中具有的兩種不同的視口類型。正交(orthogonal)透視(perspective)2OpenGL---透視正交視線永遠(yuǎn)不會(huì)交匯而且物體不會(huì)改變其大小。沒有透視效果。3OpenGL---透視透視物體會(huì)隨著移遠(yuǎn)而越來越小,,視線會(huì)在物體移,視線會(huì)在物體移離觀察者時(shí)最終交匯。這是對(duì)真實(shí)視覺的模擬,,人們就是以這種方式,人們就是以這種方式觀察世界的。4OpenGL---透視toprightne

2、ar5OpenGL---透視設(shè)置正交視口通過glOrthof()通知OpenGLES你希望使用正交視口floatratio=_width/_height;//屏幕寬長(zhǎng)比//orthographic:gl.glOrthof(-1,//left1,//right-1/ratio,//bottom1/ratio,//top0.01f,//near100.0f);//far設(shè)定視口空間的寬度為兩個(gè)單位,沿x軸從-1.0到+1.0。定義空間的X和Y坐標(biāo)的寬高比與視窗的寬高比(也就是全屏?xí)r的寬高比)一樣,確

3、保視口的X和Y坐標(biāo)遵循一樣的比例。6OpenGL---透視“定義空間的X和和和和Y坐標(biāo)的寬高比與視窗的寬高比(也就是全屏?xí)r的寬高比(((也就是全屏?xí)r的寬高比)一樣)))一樣,,,,top確保視口的X和和和和Y坐標(biāo)遵循一樣的比例。。。?!碑?dāng)視野中的三角形長(zhǎng)寬比等于height屏幕的長(zhǎng)寬比,視覺效果才會(huì)更好。righttop=right*(height/width)=right/(width/height)width7OpenGL---透視設(shè)置正交視口定義了near(((遠(yuǎn)(遠(yuǎn)遠(yuǎn)遠(yuǎn)))))和和和和fa

4、r(((近(近近近))))范圍來描述觀察的深度范圍來描述觀察的深度。。。near參數(shù):說明了視口開始的位置。如果我們站在原點(diǎn)處,視口就位于我們的面前,習(xí)慣上使用.01或.001作為正交視口的起點(diǎn)。使得視口處于原點(diǎn)“前方”一點(diǎn)點(diǎn)。far描述觀察的深度,根據(jù)你程序的需要來設(shè)定。floatratio=_width/_height;//屏幕長(zhǎng)寬比//orthographic:gl.glOrthof(-1,//left1,//right-1/ratio,//bottom1/ratio,//top0.01f

5、,//near100.0f);//far8OpenGL---透視調(diào)用glOrthof()之后,,我們使用視窗矩形來調(diào)用,我們使用視窗矩形來調(diào)用glViewport()。gl.glViewport(0,0,(int)_width,(int)_height);切換了MatrixMode到GL10.GL_MODELVIEW,,設(shè),設(shè)置OpenGL接受關(guān)于改變model繪制方式的調(diào)用。9OpenGL---透視調(diào)用了glEnable()并使用參數(shù)GL10.GL_DEPTH_TEST。。使。使OpenGL

6、ES檢查對(duì)象的z方向的順序。。如果我們沒有。如果我們沒有enable它它,它,,我們將看,我們將看到最后被繪制的對(duì)象一直顯示在最前面。。這意味。這意味著著,著,,即使這個(gè)物體本來應(yīng)該被更近更大的物體遮,即使這個(gè)物體本來應(yīng)該被更近更大的物體遮蓋蓋,蓋,,我們依然可以看到它,我們依然可以看到它。gl.glMatrixMode(GL10.GL_MODELVIEW);gl.glEnable(GL10.GL_DEPTH_TEST);10OpenGL---透視設(shè)置透視視口隨著視線越來越遠(yuǎn),可以看到更廣闊的世

7、界物體隨著遠(yuǎn)離觀察者而變小使用透視時(shí)可見空間的形狀稱為錐臺(tái)(frustum)11OpenGL---透視視野(fieldofvision)由兩個(gè)角度定義的:伸出雙臂手掌合攏伸向前方。你的手臂現(xiàn)在指向你自己錐臺(tái)的z軸。現(xiàn)在慢慢分開你的雙臂,定義了一個(gè)逐漸增大的角度。這就是用于定義觀察錐臺(tái)的兩個(gè)角度之一,它定義了視野的寬度。12OpenGL---透視視野(fieldofvision)上下展開你的雙臂,定義了另一個(gè)角度。如果你的雙手間距只有三厘米,那么角度將非常小。這稱為窄視野。如果你雙

8、手分開兩米,視野的寬度變得很大。這就是所謂寬視角(廣角)。13OpenGL---透視設(shè)置透視視口我們選擇一個(gè)中間值,45°。使用這個(gè)值,我們?cè)鯓佑?jì)算我們的觀察錐臺(tái)?想象一下,從頂部看錐臺(tái)是什么樣子。下面是示意圖:45°14OpenGL---透視設(shè)置透視視口正切函數(shù)定義為直角對(duì)邊與相鄰邊的比率。錐臺(tái)遠(yuǎn)端寬度的一半就是視野角度正切的一半。將此值乘以near值,就可以得到right值。rightright值取反就是left。nearright=near*tan

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

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

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(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)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。