OpenGL介紹

OpenGL 是一種規(guī)范拒秘,具體內(nèi)容由顯卡廠商實(shí)現(xiàn)

OpenGL 是一個(gè)圖形API,所以它允許我們做一些關(guān)于圖像方面的事情觉痛。特別地荠瘪,OpenGL實(shí)際上允許我們?cè)L問我們的GPU(顯卡)孕索,顯卡可以更有力地繪制圖形逛艰。
實(shí)際上為了在電腦和設(shè)備(像手機(jī))上使用顯卡,我們實(shí)際上需要一些API來操縱顯卡搞旭。OpenGL是這類API中的一種散怖,我們也有其它這方面的API像是Direct3D(Window 專用)、Vulkan(最新一代的OpenGL肄渗,語法方面和OpenGL差異較大)镇眷、Metal(蘋果專用)和一些其它的。

OpenGL允許我們一定程度上操控我們的顯卡翎嫡。OpenGL的核心本身是一種規(guī)范欠动,類似于C++規(guī)范。實(shí)際上它并沒有確定任何的代碼或類似的事情惑申。它本身是一種規(guī)范具伍,類似說“Hey,這個(gè)函數(shù)應(yīng)該存在圈驼,他需要這些參數(shù)沿猜,并且需要返回這個(gè)值”。他只是個(gè)告訴你可以利用這些API做什么的規(guī)范碗脊,而不提供任何實(shí)現(xiàn)。這意味著它肯定不是一個(gè)庫橄妆,因?yàn)镺penGL本身是沒有任何代碼的衙伶。

那么問題來了:“我們上哪下載OpenGL呢?”

實(shí)際上不需要下載它害碾,它本身是一個(gè)規(guī)范矢劲。

那誰去實(shí)現(xiàn)它呢,誰去為那些你會(huì)使用的OpenGL函數(shù)寫代碼呢慌随?答案是你的顯卡生產(chǎn)商芬沉。

所以如果你用的是NVDIA顯卡躺同,那么你的顯卡驅(qū)動(dòng)程序就會(huì)包含OpenGL的實(shí)現(xiàn)。并且所有的顯卡廠商丸逸,像是AMD蹋艺,Intel等,他們會(huì)有他們自己的實(shí)現(xiàn)黄刚。每個(gè)廠商對(duì)OpenGL的實(shí)現(xiàn)都會(huì)有輕微的不同捎谨。這就是為什么在很多情況下,有些代碼基于NVIDIA顯卡的驅(qū)動(dòng)程序上能工作憔维,但是在AMD電視或者其他顯卡上顯得有一些 不同涛救,甚至產(chǎn)生Bug。關(guān)鍵是在于你的顯卡廠商是如何編寫OpenGL實(shí)現(xiàn)的业扒。

“OpenGL 是開源的检吆?" 不是

不是。因?yàn)槭紫瘸檀ⅲ秋@卡廠商實(shí)現(xiàn)的蹭沛,它們顯然不會(huì)將顯卡驅(qū)動(dòng)的源碼開源。

OpenGL優(yōu)點(diǎn)跨平臺(tái)虱肄,簡(jiǎn)單

"OpenGL"是跨平臺(tái)的致板,寫一份OpenGL代碼就可以在Windows,Mac咏窿,Linux斟或,IOS,安卓系統(tǒng)上運(yùn)行集嵌。說那種API最強(qiáng)沒有必要萝挤,因?yàn)槠脚_(tái)原生的東西往往要更好一些。這也就是說OpenGL更像是個(gè)確切的規(guī)范根欧,他很普通怜珍。如果你把它和低層次的,像DirectX12或Vulkan比較的話凤粗。OpenGL可能是你現(xiàn)在能學(xué)到的最簡(jiǎn)單的那個(gè)API了酥泛。

比不上DirectX11

老的OpenGL和現(xiàn)代OpenGL

OpenGL在90年代發(fā)布,那時(shí)的GPU并不是靈活的并且可編程的嫌拣,你不能隨心所欲地去操控它柔袁,尤其是使用較底層的API。但是現(xiàn)在异逐,人們可以很大程度上控制它捶索。顯卡廠商給了程序員和開發(fā)者更多的控制權(quán)。

老的OpenGL更像是一個(gè)流水線灰瞻,所以從另一個(gè)方面來說腥例,你說我要畫一個(gè)三角形辅甥,并且我要加入光源,那么你要怎么加入這個(gè)光源呢燎竖。你可以告訴OpenGL類似"Lighting = True"的代碼璃弄,這樣可以啟用光照。然后你告訴OpenGL你想在這里啟用光照底瓣,像這樣的就叫流水線式的操作谢揪。

這種老OpenGL很容易被使用,代碼也很少捐凭。但不幸的是你也沒什么控制權(quán)拨扶。我們想要更多的控制權(quán),我們想要實(shí)現(xiàn)更多令人驚嘆的圖形茁肠。

老OpenGL和現(xiàn)代OpenGL的最大區(qū)別在于"著色器“患民。著色器是一段運(yùn)行在GPU上的程序。所以我們用C++或JAVA或C#其他什么編程語言寫的程序都是運(yùn)行在CPU上的垦梆。但當(dāng)我們針對(duì)圖形處理的時(shí)候匹颤,我們想要精準(zhǔn)控制GPU,所以可能要將一些代碼從CPU放到GPU上托猩。因?yàn)樗鼈兛梢栽贕PU上運(yùn)行地更快印蓖。這就是著色器存在的意義。著色器只是允許我們?cè)贕PU上寫程序京腥。

因?yàn)槟阆胍?jì)算出復(fù)雜的光照算法赦肃,你一定會(huì)想在GPU上計(jì)算而不是像過去一樣在CPU上解決。

所以老OpenGL和現(xiàn)代OpenGL最重要的區(qū)別在于是否有可編程著色器公浪。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末他宛,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子欠气,更是在濱河造成了極大的恐慌厅各,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,635評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件预柒,死亡現(xiàn)場(chǎng)離奇詭異队塘,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)宜鸯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門人灼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人顾翼,你說我怎么就攤上這事∧卫幔” “怎么了适贸?”我有些...
    開封第一講書人閱讀 168,083評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵灸芳,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我拜姿,道長(zhǎng)烙样,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,640評(píng)論 1 296
  • 正文 為了忘掉前任蕊肥,我火速辦了婚禮谒获,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘壁却。我一直安慰自己批狱,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,640評(píng)論 6 397
  • 文/花漫 我一把揭開白布展东。 她就那樣靜靜地躺著赔硫,像睡著了一般。 火紅的嫁衣襯著肌膚如雪盐肃。 梳的紋絲不亂的頭發(fā)上爪膊,一...
    開封第一講書人閱讀 52,262評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音砸王,去河邊找鬼推盛。 笑死,一個(gè)胖子當(dāng)著我的面吹牛谦铃,可吹牛的內(nèi)容都是我干的耘成。 我是一名探鬼主播,決...
    沈念sama閱讀 40,833評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼荷辕,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼凿跳!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起疮方,我...
    開封第一講書人閱讀 39,736評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤控嗜,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后骡显,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體疆栏,經(jīng)...
    沈念sama閱讀 46,280評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,369評(píng)論 3 340
  • 正文 我和宋清朗相戀三年惫谤,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了壁顶。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,503評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡溜歪,死狀恐怖若专,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蝴猪,我是刑警寧澤调衰,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布膊爪,位于F島的核電站,受9級(jí)特大地震影響嚎莉,放射性物質(zhì)發(fā)生泄漏米酬。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,870評(píng)論 3 333
  • 文/蒙蒙 一趋箩、第九天 我趴在偏房一處隱蔽的房頂上張望赃额。 院中可真熱鬧,春花似錦叫确、人聲如沸跳芳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽筛严。三九已至,卻和暖如春饶米,著一層夾襖步出監(jiān)牢的瞬間桨啃,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評(píng)論 1 272
  • 我被黑心中介騙來泰國打工檬输, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留照瘾,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,909評(píng)論 3 376
  • 正文 我出身青樓丧慈,卻偏偏與公主長(zhǎng)得像析命,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子逃默,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,512評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容