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

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

ID:37728241

大?。?85.15 KB

頁數(shù):34頁

時間:2019-05-29

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

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

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

2、ar5OpenGL---透視設(shè)置正交視口通過glOrthof()通知OpenGLES你希望使用正交視口floatratio=_width/_height;//屏幕寬長比//orthographic:gl.glOrthof(-1,//left1,//right-1/ratio,//bottom1/ratio,//top0.01f,//near100.0f);//far設(shè)定視口空間的寬度為兩個單位,沿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)視野中的三角形長寬比等于height屏幕的長寬比,視覺效果才會更好。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;//屏幕長寬比//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檢查對象的z方向的順序。。如果我們沒有。如果我們沒有enable它它,它,,我們將看,我們將看到最后被繪制的對象一直顯示在最前面。。這意味。這意味著著,著,,即使這個物體本來應(yīng)該被更近更大的物體遮,即使這個物體本來應(yīng)該被更近更大的物體遮蓋蓋,蓋,,我們依然可以看到它,我們依然可以看到它。gl.glMatrixMode(GL10.GL_MODELVIEW);gl.glEnable(GL10.GL_DEPTH_TEST);10OpenGL---透視設(shè)置透視視口隨著視線越來越遠(yuǎn),可以看到更廣闊的世

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

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

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

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

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