OpenGL ES 2.0庫
詳情介紹
OpenGL ES 2.0是OpenGL三維圖形API的子集,針對手機、PAD和游戲主機等嵌入式設(shè)備設(shè)計,而小編帶來的OpenGL ES 2.0是其2.0版本,這一版本主要針對可編程管線硬件,參照OpenGL 2.0的規(guī)范定義的。OpenGL ES 2.0是一個定義了跨編程語言、跨平臺的編程接口的規(guī)格,用于三維圖像,也就是說小編帶來的這個東西其實并不是軟件,而是一個功能強大的方便調(diào)用的底層圖形庫。
OpenGL ES 2.0具有免費,跨平臺等特點,功能完善的2D和3D圖形應(yīng)用程序接口API能夠針對多種嵌入式系統(tǒng)做出專門設(shè)計,包括移動電話、手持設(shè)備、家電設(shè)備等等如果用戶為一些手機、游戲機等嵌入式設(shè)備做開發(fā),那么這個OpenGL ES 2.0是必不可少的。
OpenGL ES 2.0支持平臺與機型
- 支持iPad, iPhone3GS 和后續(xù)版本,以及iPodTouch3代和后續(xù)版本。
- 支持Android平臺從Android 2.2版本開始。
- 支持Android NDK從Android 2.0版本開始。
- 支持BlackBerryPlayBook黑莓。
- 支持Pandora潘多拉控制臺的3D庫。
- 被WebGL支持:瀏覽器支持OpenGL
- 支持少數(shù)新款Nokia諾基亞手機,比如N900上的Maemo和N8上的Symbian3塞班3系統(tǒng)。
- 支持多款三星手機,包括Galaxy S和Wave。
- 使用開發(fā)插件可以支持Palm webOS。
- 支持Archos 愛可視上網(wǎng)本:70 IT, 101 IT
OpenGL ES 2.0功能
大大提高不同消費電子設(shè)備的3D圖形渲染速度;
在嵌入式系統(tǒng)上實現(xiàn)了全面可編程的3D圖形;
把三維空間中的對象通過投影、光柵化轉(zhuǎn)換為二維圖像,然后呈現(xiàn)到屏幕上。
1、Shader(就是一段程序Program)
Shader是一段執(zhí)行在GPU上的程序(所以Shader也可以叫做Program),此程序使用OpenGL ES SL語言來編寫。它是一個描述頂點或像素特性的簡單程序。
- 1.1Pixel Shader
Pixel Shader(像素著色器)就是眾所周知的Fragment Shader,它計算每個像素的顏色和其它屬性。它通過應(yīng)用光照值、凹凸貼圖,陰影,鏡面高光,半透明等處理來計算像素的顏色并輸出。它也可改變像素的深度(z-buffering)或在多個渲染目標被激活的狀態(tài)下輸出多種顏色。一個Pixel Shader不能產(chǎn)生復(fù)雜的效果,因為它只在一個像素上進行操作,而不知道場景的幾何形狀。
- 1.2 Vertex Shader
對于發(fā)送給GPU的每一個Vertex(頂點),都要執(zhí)行一次Vertex Shader(頂點著色器)。其功能是把每個頂點在虛擬空間中的三維坐標變換為可以在屏幕上顯示的二維坐標,并帶有用于z-buffer的深度信息。Vertex Shader可以操作的屬性有:位置、顏色、紋理坐標,但是不能創(chuàng)建新的頂點。
Vertex Shader輸入數(shù)據(jù)如下:
1)Attributes: 通過頂點數(shù)組(vertex arrays)提供的每個頂點數(shù)據(jù)
2)Uniforms: Vertex Shader使用的常量數(shù)據(jù)
3)Samplers: Vertex Shader使用的一個表示紋理類型的Uniforms,在Vertex Shader中是可選的
4)Shader program: Vertex Shader程序源碼或可執(zhí)行文件,它描述了將在頂點上執(zhí)行的操作
Vertex Shader輸出為:varying variables(Vertex Shader的輸出變量,作為Fragment Shader的輸入。必須與Fragment Shader中的輸入Varying一一對應(yīng)。)
gl_Position: 是每個點固有的Varying,表示點的空間位置。
- 1.3 Geometry Shader
Geometry Shader是一個相對新的Shader類型。它在Driect3D 10和OpenGL 3.2中開始引入,在OpengGL 2.0+中作為擴展使用。它的輸入為:點、線和三角形;其輸出為點、線帶和三角形帶。
2、Shading Language
Shading Language僅適合于為GPU編程,編程工具為Cg(Nvidia開發(fā)),Cg編譯器可以輸出Direct3X或OpenGL Shader程序。
3、Shading 算法
- 3.1 插值技術(shù)(可以和任何照明模型組合):
Flat shading
Gouraud shading
Phong shading
- 3.2 照明模型 (可以和任何插值技術(shù)組合):
Blinn–Phong
Cook–Torrance (microfacets)
Lambert
Minnaert
Oren–Nayar (Rough opaque diffuse surfaces)
Phong
Ward anisotropic
4、原語匯編(Primitive Assembly)
在管道(pipeline)中,執(zhí)行完Vertex Shader之后,就執(zhí)行原語匯編。一個原語(primitive)就是一個可以使用OpenGL ES畫圖命令進行繪制的幾何對象。
在原語匯編階段,被Vertex Shader處理輸出的頂點被組合進行一個單獨可被繪制的幾何原語(如:點、線和三角形)。然后對幾何原語執(zhí)行以下兩種操作:
Clipping(裁剪): 只保留在可視空間范圍內(nèi)的原語
Culling(選擇): 基于面向前或后,進行原語的選擇
在裁剪和選擇之后,其下一個階段為進行Geometry Shader(如果存在)或光柵化處理。
5、光柵(Rasterization)
光柵處理的目標:把原語轉(zhuǎn)換為一系列二維fragments,這些二維fragments將被Fragment Shader處理,且這些二維fragments表示可被繪制在屏幕上的像素。
6、 Fragment Shader
對每個光柵化產(chǎn)生的fragment執(zhí)行一次Fragment Shader,其輸入內(nèi)容如下:
Varying variables:Vertex Shader的輸出,且由光柵化單元對每個fragment使用插值方法產(chǎn)生
Uniforms:Fragment Shader使用的常量數(shù)據(jù)
Samplers:一個表示紋理的常量數(shù)據(jù)
Shader program:Fragment shader程序源碼或可執(zhí)行文件,它描述了將在fragment上執(zhí)行的操作。
下載地址
- 電腦版
- 本地下載通道:
- 浙江電信下載
- 北京聯(lián)通下載
- 江蘇電信下載
- 廣東電信下載
同類軟件
網(wǎng)友評論
共0條評論分類列表
類似軟件
-
易順佳倉庫軟件 v3.06.26官方版 商業(yè)貿(mào)易 / 12.91M
-
Lyric Library(歌詞庫) v2016.8電腦版 媒體其它 / 15.48M
-
Database.NET(多數(shù)據(jù)庫管理工具) v36.4.9122.1官方版 數(shù)據(jù)庫類 / 40.91M
-
無極黑高級PS筆刷 附安裝教程 濾鏡插件 / 7.56M