自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

OpenGL ES介紹:嵌入式3D圖形算法標(biāo)準(zhǔn)

移動(dòng)開發(fā) 算法
隨著Android 4.3 的發(fā)布,我們終于在新Nexus 7上見到了 OpenGL ES 3.0 的身影, 說起 OpenGL ES 可能大家對(duì)此知之甚少,不過 OpenGL 對(duì)很多游戲玩家來(lái)說應(yīng)該是印象深刻的,雖然不像 DirectX 那么頻繁的出現(xiàn)需要更新,但也總有一兩個(gè)游戲需要。OpenGL ES 可以理解為是 OpenGL 的精簡(jiǎn)版,多用于移動(dòng)平臺(tái)產(chǎn)品,Android和iOS在早期版本中都內(nèi)置了對(duì)OpenGL ES2.0的支持。

什么是OpenGL?

OpenGL(全寫Open Graphics Library)是個(gè)定義了一個(gè)跨編程語(yǔ)言、跨平臺(tái)的應(yīng)用程序接口(API)的規(guī)格,它用于生成二維、三維圖像。這個(gè)接口由近三百五十個(gè)不同的函數(shù)調(diào)用組 成,用來(lái)從簡(jiǎn)單的圖形繪制復(fù)雜的三維景象。而另一種程序接口系統(tǒng)是僅用于Microsoft Windows上的Direct3D。OpenGL常用于CAD、虛擬實(shí)境、科學(xué)可視化程序和電子游戲開發(fā)。OpenGL的高效實(shí)現(xiàn)(利用了圖形加速硬 件)存在于Windows,很多UNIX平臺(tái)和MacOS。這些實(shí)現(xiàn)一般由顯示設(shè)備廠商提供,而且非常依賴于該廠商提供的硬件。開放源代碼庫(kù)Mesa是一 個(gè)純基于軟件的圖形API,它的代碼兼容于OpenGL。OpenGL規(guī)范由1992年成立的OpenGL架構(gòu)評(píng)審委員會(huì)(ARB)維護(hù)。ARB由一些對(duì) 創(chuàng)建一個(gè)統(tǒng)一的、普遍可用的API特別感興趣的公司組成。根據(jù)OpenGL官方網(wǎng)站,2002年6月的ARB投票成員包括3Dlabs、Apple Computer、ATI Technologies、Dell Computer、Evans & Sutherland、Hewlett-Packard、IBM、Intel、Matrox、NVIDIA、SGI和Sun Microsystems,Microsoft曾是創(chuàng)立成員之一,但已于2003年3月退出(微軟曾經(jīng)試圖融合DirectX 和 OpenGL,不過最終放棄了,微軟的DirectX起初的戰(zhàn)略是為了推動(dòng)DOS游戲開發(fā)者轉(zhuǎn)向Windows,從此之后它就被綁定在Windows下為 PC游戲服務(wù),所以它僅支持Windows)。

opengl

OpenGL™ 是行業(yè)領(lǐng)域中最為廣泛接納的 2D/3D 圖形 API, 其自誕生至今已催生了各種計(jì)算機(jī)平臺(tái)及設(shè)備上的數(shù)千優(yōu)秀應(yīng)用程序。OpenGL™ 是獨(dú)立于視窗操作系統(tǒng)或其它操作系統(tǒng)的,亦是網(wǎng)絡(luò)透明的。在包含CAD、內(nèi)容創(chuàng)作、能源、娛樂、游戲開發(fā)、制造業(yè)、制藥業(yè)及虛擬現(xiàn)實(shí)等行業(yè)領(lǐng)域 中,OpenGL™ 幫助程序員實(shí)現(xiàn)在 PC、工作站、超級(jí)計(jì)算機(jī)等硬件設(shè)備上的高性能、極具沖擊力的高視覺表現(xiàn)力圖形處理軟件的開發(fā)。

什么是OpenGL ES?

OpenGL ES (OpenGL for Embedded Systems) 是 OpenGL 三維圖形 API 的子集,針對(duì)手機(jī)、PDA和游戲主機(jī)等嵌入式設(shè)備而設(shè)計(jì)。OpenGL ES 是從 OpenGL 裁剪定制而來(lái)的,去除了 glBegin/glEnd,四邊形(GL_QUADS)、多邊形(GL_POLYGONS)等復(fù)雜圖元等許多非絕對(duì)必要的特性。經(jīng)過多年發(fā)展,現(xiàn)在主要 有兩個(gè)版本,OpenGL ES 1.x 針對(duì)固定管線硬件的,OpenGL ES 2.x 針對(duì)可編程管線硬件。OpenGL ES 1.0 是以 OpenGL 1.3 規(guī)范為基礎(chǔ)的,OpenGL ES 1.1 是以 OpenGL 1.5 規(guī)范為基礎(chǔ)的,它們分別又支持 common 和 common lite 兩種profile。lite profile只支持定點(diǎn)實(shí)數(shù),而common profile既支持定點(diǎn)數(shù)又支持浮點(diǎn)數(shù)。 OpenGL ES 2.0 則是參照 OpenGL 2.0 規(guī)范定義的,common profile發(fā)布于2005-8,引入了對(duì)可編程管線的支持。

1

Open GL ES 3.0

在 2007 年 8 月,初代 iPhone 和 Android 都內(nèi)置了 OpenGL ES 1.x;2009 年 10 月,iPhone 3GS 和 Android 2.2 內(nèi)置了 OpenGL ES 2.0。結(jié)果 OpenGL ES 在移動(dòng)市場(chǎng)的占有率大增,從 2006 年的 20% 到今年的 90% 以上。在昨天的 SIGGRAPH 2012 大會(huì)上,科納斯組織(Khronos Group)公布了新版本 OpenGL ES 3.0。

1

OpenGL ES 3.0 帶來(lái)很多新特性:
1、支持更多緩沖區(qū)對(duì)象。在 OpenGL ES 2.0 時(shí)中,緩沖區(qū)對(duì)象的規(guī)范有模糊之處。名字一樣緩沖區(qū)對(duì)象,在實(shí)際渲染中對(duì)表現(xiàn)卻有細(xì)微的差別。針對(duì)這個(gè)問題 OpenGL ES 3.0 制定了更詳細(xì)對(duì)格式規(guī)范。新版 OpenGl ES 還增加對(duì) Uniform Buffer Object 的支持。
2、新版 GLSL ES 3.0 著色語(yǔ)言,支持 32 位整數(shù)和浮點(diǎn)數(shù)據(jù)類型以及操作。之前版本的著色語(yǔ)言只支持精度更低的,這樣雖然能夠加快計(jì)算的速度,所需的資源也更少,但當(dāng)著色器的復(fù)雜度增加,出錯(cuò)也隨之增加。同時(shí),新版著色語(yǔ)言的語(yǔ)法更貼近 GLSL。
3、支持遮擋查詢(Occlusion Query)以及幾何體實(shí)例化(Geometry Instancing)。通過遮擋查詢,能夠讓 GPU 知道 3D 場(chǎng)景中,哪些物體被其它物體完全遮擋,這些完全被遮擋的物體 GPU 不會(huì)去渲染。幾何體實(shí)例化是通過對(duì)具有相同頂點(diǎn)數(shù)據(jù)的幾何體,賦予不同的空間位置、顏色或紋理等特征,從而創(chuàng)造出不同實(shí)例對(duì)象的技術(shù)。這兩個(gè)特性都能夠節(jié) 省硬件資源,提高 3D 圖形渲染的性能。
4、增加多個(gè)紋理的支持。包括浮點(diǎn)紋理、深度紋理、頂點(diǎn)紋理等等。
5、多重渲染目標(biāo)(Multiple Render Targets),讓 GPU 一次性渲染多個(gè)紋理。
6、多重采樣抗鋸齒(MSAA Render To Texture),讓 3D 物體對(duì)邊緣不出現(xiàn)毛刺,可提升圖像效果。
7、使用統(tǒng)一的紋理壓縮格式 ETC:多年來(lái)阻礙 OpenGL 發(fā)展的一大頑疾,就是沒有統(tǒng)一的紋理壓縮格式,包括 S3TC、GPUs、PVPRTC、ETC 等等。因?yàn)闆]有一個(gè)統(tǒng)一標(biāo)準(zhǔn),開發(fā)者不得不因?yàn)椴煌挠布h(huán)境而將紋理重復(fù)壓縮多次——尤其對(duì)于 Android 開發(fā)者而言,這個(gè)過程苦不堪言(對(duì)用戶來(lái)說也有大量的煩惱,比如安裝游戲數(shù)據(jù)包時(shí)需要自己來(lái)識(shí)別需要哪種材質(zhì)的數(shù)據(jù)包)。顯然,統(tǒng)一紋理壓縮格式,能夠提 高開發(fā)者對(duì)開發(fā)效率。但現(xiàn)實(shí)中,統(tǒng)一標(biāo)準(zhǔn)這類事情的進(jìn)展從來(lái)沒有快過。這視乎之后開發(fā)者與廠商會(huì)做出怎樣的反應(yīng)。

2

Android 4.3 升級(jí)到 Open GL ES 無(wú)疑是一個(gè)好的開始,OpenGL ES 3.0 大量的新特性完全加持,將大幅提高移動(dòng)平臺(tái)圖形特性,提高游戲圖形效果。

責(zé)任編輯:徐川 來(lái)源: 雷鋒網(wǎng)
相關(guān)推薦

2010-02-14 15:27:25

2009-12-17 10:33:05

嵌入式Linux

2021-11-05 22:47:44

冒泡排序選擇插入

2017-12-07 19:12:15

西部數(shù)據(jù)

2023-02-09 08:35:39

Spring嵌入式容器

2009-06-26 16:05:04

嵌入式Linux

2009-12-28 17:54:49

WPF嵌入式資源

2022-03-10 08:59:59

傅里葉變換算法系統(tǒng)

2020-11-04 10:20:56

嵌入式算法CRC

2011-03-07 09:57:24

Perst嵌入式數(shù)據(jù)庫(kù)

2011-06-27 15:57:21

Qt 3D OpenGL

2009-12-23 13:05:22

Linux嵌入式

2014-04-24 11:16:00

OpenGL ES 2入門

2013-01-30 16:15:40

adobeHTML5css3

2021-11-29 07:43:08

大數(shù)據(jù)存儲(chǔ)算法

2023-03-26 12:41:46

2013-09-22 10:39:00

MeayunDB

2009-06-11 11:09:02

Linux嵌入式開發(fā)環(huán)境

2010-02-05 09:20:52

Ubuntu 8.10

2009-03-19 20:41:31

VirtualBox GuestsOpenGL 3D
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)