OpenGL之名詞

1非凌、 圖形框架

OpenGL(Open Graphics Library)是?個跨編程語言、跨平臺的編程圖形程序接口荆针,它將計算機的資源抽象稱為?個OpenGL的對象敞嗡,對這些資源的操作抽象為?個的OpenGL指令颁糟。

OpenGL ES (OpenGL for Embedded Systems)OpenGL三維圖形 API的?集,針對手機喉悴、 PDA和游戲主機等嵌入式設(shè)備而設(shè)計棱貌,去除了許多不必要和性能較低的API接?。

MetalApple為了解決3D渲染?推出的新的平臺技術(shù)框架箕肃,能夠為 3D 圖像提? 10 倍的渲染性能婚脱。

2、專業(yè)名詞

  • 狀態(tài)機和上下文(context)
    OpenGL本身就是一個大狀態(tài)機,可以記錄自己的狀態(tài)勺像,有很多變量可以設(shè)置以便我們控制其操作障贸。OpenGL的狀態(tài)通常被稱為上下文(context)。我們在操作OpenGL的時候就是通過改變其狀態(tài)來改變其運行的上下文吟宦,這樣OpenGL就能給我們想要的結(jié)果了篮洁。
    比如如果想要繪制線而不是三角形時,我們通過改變一些設(shè)置告訴OpenGL應(yīng)該如何繪制的上下文變量來改變OpenGL的狀態(tài)
  • VertexArray(頂點數(shù)組)和VertexBuffer(頂點緩沖區(qū))
    OpenGL中的圖像都是由點殃姓、線袁波、三角形3種圖元組成。頂點數(shù)組就是在調(diào)用繪制方法的時候蜗侈,開發(fā)者可以通過設(shè)定函數(shù)指針傳入頂點數(shù)據(jù)篷牌,而頂點緩沖區(qū)的作用是提高繪制性能,提前分配一塊顯存宛篇,將頂點數(shù)據(jù)預(yù)先傳入到顯存當中娃磺。在調(diào)用繪制方法的時候就可以直接從顯存當中讀取頂點數(shù)據(jù)。
  • 渲染( Rendering)
    將圖形/圖像數(shù)據(jù)轉(zhuǎn)換成2D空間圖像的操作
  • 著色器程序(Shader)
    常見的著色器有 頂點著色器(VertexShader)叫倍、?段著色器 (FragmentShader) 偷卧、幾何著色器 (GeometryShader),曲?細分著色器(TessellationShader)
    著色器程序是由OpenGL通過編譯吆倦、鏈接等步驟生成听诸,同時包含頂點著色器和?段著色器 的運算邏輯,繪制的過程中蚕泽,首先由頂點著?器對傳入的頂點數(shù)據(jù)進?運算晌梨。再通過圖元裝配,將頂點轉(zhuǎn)換為圖元须妻。然后進?光柵化仔蝌,將圖元這種?量圖形,轉(zhuǎn)換為柵格化數(shù)據(jù)荒吏。最后敛惊,將柵格化數(shù)據(jù)傳入?段著?器中進行運算。?段著?器會對柵格化數(shù)據(jù)中的每一個像素進行運算绰更,并決定像素的顏?

  • 頂點著色器(VertexShader)
    ?般?來處理圖形每個頂點變換(旋轉(zhuǎn)/平移/投影等)瞧挤,并行計算锡宋,且運算過程中?法訪問其他頂點的數(shù)據(jù)

  • ?段著色器 (FragmentShader)
    一般?來處理圖形中每個像素點顏?計算和填充,并行計算特恬,且運算過程中?法訪問其他頂點的數(shù)據(jù)执俩。

  • 管線
    管線是一個抽象概念,OpenGL在顯卡的處理過程中會嚴格按照一定的步驟順序依次執(zhí)行癌刽,把這個執(zhí)行的過程就稱之為管線

  • 固定管線/存儲著色器
    在早期的 OpenGL版本中封裝了很多著色器程序(光照役首、坐標變換、裁剪等等)妒穴,這些著色器程序開發(fā)者只能調(diào)用但不能修改宋税,所以我們也稱這些為固定管線/存儲著色器,但是由于OpenGL的使?場景?常豐富讼油,固定管線/存儲著?器?法完成每一個業(yè)務(wù)杰赛,后期變成了可編程的形式。

  • GLSL(OpenGL Shading Language)
    它是在OpenGL中?來著?編程的語?矮台,是在圖形卡的GPU上執(zhí)?的乏屯。代替了固定的渲染管線的?部分,使渲染管線中不同層次具有可編程性瘦赫。?如:視圖轉(zhuǎn)換辰晕、投影轉(zhuǎn)換等。GLSL(GL Shading Language)的著?器代碼分成頂點著?器(Vertex Shader)和?段著?器(Fragment)确虱。

  • 光柵化(Rasterization)
    ?種將把頂點數(shù)據(jù)轉(zhuǎn)換為片元過程含友,也可以理解為?何圖元變?yōu)槎S圖像的過程,該過程包含了兩部分,一是決定窗?坐標中的哪些整型柵格區(qū)域被基本圖元占?校辩,二是分配一個顏?值和?個深度值到各個區(qū)域窘问。

  • 紋理(Texture)
    在渲染圖形時需要在頂點圍成的區(qū)域中填充圖?,這個圖片在OpenGL中稱之為紋理

  • 混合(Blending)
    在測試階段之后宜咒,如果像素依然沒有被剔除惠赫,那么像素的顏?將會和幀緩沖區(qū)中顏?附著上的顏色進?混合,混合的算法可以通過OpenGL的函數(shù)進行指定故黑。但是OpenGL提供的混合算法有限儿咱。如果需要更加復(fù)雜的混合算法,一般可以通過片段著?器進?實現(xiàn)场晶,當然性能會?原?的混合算法差?些混埠。

  • 變換矩陣(Transformation)
    用于變換圖形的位置大小,比如平移诗轻、縮放钳宪、旋轉(zhuǎn)等等。

  • 投影矩陣(Projection)
    ?于將3D坐標轉(zhuǎn)換為2D坐標進行繪制。

  • 渲染上屏/交換緩沖區(qū)(SwapBuffer)
    如果每個窗?只有?個緩沖區(qū)使套,若在繪制過程中屏幕進?了刷新,窗?可能顯示出不完整的圖像鞠柄。為了解決這個問題侦高,常規(guī)的OpenGL程序?少都會有兩個緩沖區(qū)。
    垂直同步:由于顯示器的刷新?般是逐?進?的厌杜,為了防?交換緩沖區(qū)的時候屏幕上下區(qū)域的圖像分屬于兩個不同的幀奉呛,交換一般會等待顯示器刷新完成的信號,在顯示器器兩次刷新的間隔中進?交換夯尽,這個信號就被稱為垂直同步信號瞧壮,這個技術(shù)被稱為垂直同步。
    三緩沖區(qū)技術(shù):使用了雙緩沖區(qū)和垂直同步技術(shù)之后匙握,由于總是要等待緩沖區(qū)交換之后再進?下?幀的渲染咆槽,使得幀率無法完全達到硬件允許的最??平。為了解決這個問題圈纺,引?了三緩沖區(qū)技術(shù)秦忿。在等待垂直同步時,來回交替渲染兩個離屏的緩沖區(qū)蛾娶,?垂直同步發(fā)?生時灯谣,屏幕緩沖區(qū)和最近渲染完成的離屏緩沖區(qū)交換,實現(xiàn)充分利利?硬件性能的?的蛔琅。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末胎许,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子罗售,更是在濱河造成了極大的恐慌辜窑,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件莽囤,死亡現(xiàn)場離奇詭異谬擦,居然都是意外死亡,警方通過查閱死者的電腦和手機朽缎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門惨远,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人话肖,你說我怎么就攤上這事北秽。” “怎么了最筒?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵贺氓,是天一觀的道長。 經(jīng)常有香客問我床蜘,道長辙培,這世上最難降的妖魔是什么蔑水? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮扬蕊,結(jié)果婚禮上搀别,老公的妹妹穿的比我還像新娘。我一直安慰自己尾抑,他們只是感情好歇父,可當我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著再愈,像睡著了一般榜苫。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上翎冲,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天垂睬,我揣著相機與錄音,去河邊找鬼府适。 笑死羔飞,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的檐春。 我是一名探鬼主播逻淌,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼疟暖!你這毒婦竟也來了卡儒?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤俐巴,失蹤者是張志新(化名)和其女友劉穎骨望,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體欣舵,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡擎鸠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了缘圈。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片劣光。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖糟把,靈堂內(nèi)的尸體忽然破棺而出绢涡,到底是詐尸還是另有隱情,我是刑警寧澤遣疯,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布雄可,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏数苫。R本人自食惡果不足惜聪舒,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望虐急。 院中可真熱鬧过椎,春花似錦、人聲如沸戏仓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽赏殃。三九已至,卻和暖如春间涵,著一層夾襖步出監(jiān)牢的瞬間仁热,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工勾哩, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留抗蠢,地道東北人。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓思劳,卻偏偏與公主長得像迅矛,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子潜叛,可洞房花燭夜當晚...
    茶點故事閱讀 42,762評論 2 345