版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、-OpenGL ESOpenGL ES 02 繪制圖元 2 矩形-02嚴格意義上來說,矩形并不是OpenGL ES 的圖元。 但是,讓面對現實,繪制這些矩形象繪制一個三角形一樣非常簡單。在本中,把基本的三角形繪制代碼轉化為繪制矩形。再一次說明,這些渲染是的,但是通過轉化(即移動它們)來使它們快速移動。當然,一旦完成了矩形,試圖完成一個立方體,完成一個紋理的立方體。本的快速小結及其他用空白畫布的 XCode 工程來渲染了一個實心的白色的三角形。為了做到這點,上 個,你創(chuàng)建了一個頂點數組,告訴OpenGL 這些數據并且使用 glVertexPoer() 來格式化。為渲染這個頂點數組定義一個狀態(tài),并
2、且使用 glDrawArrays ()來渲染它。,要使用之前的代碼,用制作三角形的方法來制作一個矩形。要做到這點,僅僅需要修改一對(組)代碼。第一點是顯然的,需要 4 點來組成矩形, 而不是原來 3 點的三角形。然后,要告訴OpenGL 用不一樣的 glDrawArrays().方法來繪制一個不同的物體。讓開始吧。定義矩形的頂點打開之前刪除它,中建立的XCode 工程,找到 drawView 函數。注釋掉triangleVerti在之后轉換的時候還需要用到,并且添加下列代碼:,但是不是constGLfloat squareVerti = -1.0, 1.0, -6.0,/ Bottom lef
3、t 1.0, 1.0, -6.0/ Top left-1.0, -1.0, -6.0,/ Bottom right1.0, -1.0, -6.0,/ Top right;這個定義了的矩形。注意,這個矩形的頂點也是逆時針的。然 后,到下面的繪制三角形的代碼處,將這些代碼都注釋掉,回復到開始狀態(tài)。 所以注釋掉三個函數調用的glVertexArray( ) , glEnableCntS e ( ) ,和glDrawArrays ( ) ,并添加以下代碼:glVertexPoer(3, GL_FLOAT, 0, squareVerti glEnableCntSe(GL_VERTEX_ARRAY); g
4、lDrawArrays(GL_TRIANGLE_FAN, 0, 4););這三項職能相同,只是功能略有不同。glVertexPoer(3, GL_FLOAT, 0, squareVerti);這個唯一的變化就是告訴OpenGL 使用了不同的頂點設置方案,而不是現在的三角形。glEnableC ntS e()同樣是告訴 OpenGL 從頂點數組來繪制(而不是顏色數組或者其他的什么)glDrawArrays(GL_TRIANGLE_FAN, 0, 4);這里有些改變了。在上個,使用GL_TRIANGLES 做用第一個參數,并且使用 3 在第3 個參數里。第 2 個參數。之前是 0,這里也還是 0,
5、因為只包含了矩形的頂點。第一個參數是繪圖模式,而且你現在看到兩種可能的OpenGL 繪圖方式?;〞r間來現在不同的繪圖模式。它們是:GL_PO GL_LINESSGL_LINE_LOOP GL_LINE_STRIP GL_TRIANGLES GL_TRIANGLE_STRIP GL_TRIANGLE_FAN還沒有點或線,所以我只介紹最后的三個。在我開始之前,我要提醒你,頂點數組可能包含不止一個三角形,以您只看到一個物體頂點數組,你要知道,不僅限于這一點。GL_TRIANGLES - 這個參數意味著OpenGL 使用三個頂點來組成圖形。所以,在開始的三個頂點,將用頂點 1,頂點 2,頂點 3 來組
6、成一個三角形。完成后,在用下一組的三個頂點來組成三角形,直到數組結束。GL_TRIANGLE_STRIP - OpenGL 的使用將最開始的兩個頂點出發(fā),然后遍歷每個頂點,這些頂點將使用前 2 個頂點一起組成一個三角形。所以 squareVerti68將與 squareVerticies02和 squareVerticies35.生成一個三角形。 squareVerti911將與 squareVerti35 和squareVerti68生成三角形。也就是說,0,1,2 這三個點組成一個三角形,1,2,3 這三個點也組成一個三角形。注意的是, squareVerticies02表示的意思是: s
7、quareVerticies0 x 坐標squareVerticies1 y 坐標squareVerticies2 z 坐標如果我沒有說清楚的話,我用下面的例子來說明。GL_TRIANGLE_FAN - 在跳過開始的 2 個頂點,然后遍歷每個頂點,讓OpenGL 將這些頂點于它們前一個,以及數組的第一個頂點一起組成一個三角形。 squareVerti68將與squareVerticies35 (前一個)和 squareVerticies02(第一個).生成一個三角形。也就是說,同樣是 0,1,2,3 這 4 個頂點。在STRIP 狀態(tài)下是,0,1,2;1,2,3 這 2 個三角形。在 FAN
8、狀態(tài)下是,2,1,0;3,2,0 這 2 個三角形。這次使用GL_TRIANGLE_FAN ,在顯示區(qū)域獲得一個矩形。點擊”Build & Go”,然后你將在屏幕上看到一個白色的矩形(平面)回頭看你的頂點數組。設法想像用三角形來繪制一個矩形。OpenGL 就是這樣做的。三角形點 1: squareVerticies02三角形點 2: squareVerticies35矩形的左上矩形的左下三角形點 3: squareVerticies68矩形的右下考慮到上述 3 點,一個三角形的OpenGL 的繪制將彌補左下角的一半面積。試想矩形被對角線分割為左上角和右下角。如何通知這兩個三角形?OpenGL
9、剛才只繪制了矩形的左半邊。三角形點 1: squareVerticies911三角形點 2: squareVerticies68三角形點 3: squareVerticies02矩形的右上矩形的右下,上個點矩形的左上,第一點只使用了一個新的點,OpenGL 可以渲染這個三角形來完成矩形。GL_TRIANGLE_STRIP返回代碼,改變glDrawArrays() 的第一個參數由 GL_TRIANGLE_FAN 為GL_TRIANGLE_STRIP:。點擊”Build & Go”然后你會獲得下面的。讓來看看,為什么只是單單修改了下繪制模式,卻沒有獲得一個矩形。OpenGL展示的頂點數組如下:三角
10、形點 1: squareVerticies02三角形點 2: squareVerticies35三角形點 3: squareVerticies68矩形的左上矩形的左下矩形的右下OpenGL 使用了前 3 個點來渲染一個三角形。這個左下的三角形和之前是相同的。三角形點 1: squareVerticies911三角形點 2: squareVerticies68三角形點 3: squareVerticies35矩形的右上矩形的右下,上個點矩形的左下,上 2 個點這個是現在渲染三角形的 3 個點。這個三角形和理想的三角形有 90 度的夾角。提供的頂點的數組不同,可以實現一個正確的 GL_TRIANG
11、LE_STRIP ,如果現在還是做的GL_TRIANGLE_FAN 。必須記住,你的繪制模式必須和你的頂點數組保持一致,否則,就會出現奇怪的效果,就象剛才修改的那樣。如果,你堅持使用 GL_TRIANGLE_STRIP ,你只需要修改你的頂點數組,如下:const GLfloat stripSquare = -1.0, -1.0, -6.0,1.0, -1.0, -6.0,-1.0, 1.0, -6.0,1.0, 1.0, -6.0/ bottom left/ bottom right/ top left/ top right;因此,與上述情況,可以看到第一個三角形將形成頭三個頂點,產生一個三角形如下:現在,通過指定點右上角頂點( P4) ,一個新的三角地帶將形成與左上角工作( P3 )和第二前頂點(P2)這是右下角。新的頂點顯示為橙色,綠色和紅色如下:結果是,那種方式都可以讓生成一個矩形。最終
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年銷售合同實施步驟詳解版B版
- 2024年版合同特定條款修訂補充合同版B版
- 2024租地合同范本
- 2025年度金融衍生品交易財務顧問合同2篇
- 2024年電子商務營銷專屬協(xié)議3篇
- 2025年度城市基礎設施建設擔保合作協(xié)議范本3篇
- 2024年環(huán)保節(jié)能設備制造與銷售合同
- 2025年度航空航天器研發(fā)與生產合作合同3篇
- 2025年度智能駕駛出租車運營服務雇傭合同3篇
- 2025年度智能辦公系統(tǒng)全面維護與升級服務合同3篇
- 物業(yè)客服服務技巧培訓
- 山東省青島市2024-2025學年七年級上學期11月期中英語試題
- 2024年海南省公務員錄用考試《行測》試題及答案解析
- 招聘技巧的培訓
- 北師大版一年級上冊數學全冊教案(教學設計)及教學反思
- 教育機構日常運營與管理指南
- 海上移動平臺入級規(guī)范2024年第1次變更通告
- 人教版PEP小學六年級英語下冊教案全冊
- ☆問題解決策略:直觀分析 教案 2024-2025學年北師大版七年級數學上冊
- (小學組)全國版圖知識競賽考試題含答案
- ICD-10疾病編碼完整版
評論
0/150
提交評論