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