久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

OpenGL基本概念

 LVADDIE 2015-06-05

最近在做用OpenGL顯示YUV數(shù)據(jù)的工作。完成之后,,決定將學(xué)到的東西整理總結(jié)一下,。 在探索OpenGL的過程中,一篇英文的tutorial讓我受益匪淺,。 我自己的總結(jié)也將主要取材于此,。那篇tutorial的作者是個巴西人,其英文雖然語法不甚精湛,,但文章可讀性極好,。 如果你英文還可以,強(qiáng)烈推薦讀原文,,比我這總結(jié)有用多了,。

本文主要介紹OpenGL的基本概念。

OpenGL的組成

OpenGL主要包括三個要素:

  • 原件(Primitives)
  • 緩沖區(qū)(Buffers)
  • 光柵化(Rasterisation)

原件

原件包括點(diǎn),、線,、三角形。有的OpeGL版本還包括四邊形,,但在OpenGL ES(見文末說明)中只有這三種原件,。

緩沖區(qū)

包括三個概念:

  • 幀緩沖區(qū)(Frame Buffers)
  • 渲染緩沖區(qū)(Render Buffers)
  • 緩沖區(qū)對象(Buffer Objects)

幀緩沖區(qū)是GL儲存渲染結(jié)果的地方。它可以包含多個圖像,,也就是包含多個渲染緩沖區(qū),。

渲染緩沖區(qū)就是一個圖像,例如顏色圖像,、深度圖像、模版圖像(決定每個位置是否可見的掩膜)等,。

緩沖區(qū)對象就是程序員提供給OpenGL的數(shù)據(jù),,分為結(jié)構(gòu)類和索引類的。 前者被稱為“數(shù)組緩沖區(qū)對象”或“頂點(diǎn)緩沖區(qū)對象”(“Array Buffer Object”或“Vertex Buffer Object”),,即用來描述模型的數(shù)組,,如頂點(diǎn)數(shù)組、紋理數(shù)組等,; 后者被稱為“索引緩沖區(qū)對象”(“Index Buffer Object”),,是對上述數(shù)組的索引。

光柵化

光柵化的過程就是根據(jù)緩沖區(qū)對象里提供的數(shù)據(jù)經(jīng)過渲染從3D模型得到2D圖像的過程,。 得到的2D圖像會根據(jù)幀緩沖區(qū)的配置來決定是直接送到屏幕顯示或是做別的用處,。

OpenGL的流水線

從2.0版本開始,OpenGL支持可編程的流水線,。也就是說,,程序員可以通過Shader(一種程序)來控制GPU渲染的過程,。 Shader分為Vertex Shader和Fragment Shader。這兩種Shader是成對出現(xiàn)的,,GPU先執(zhí)行前者,,后執(zhí)行后者。

Vertex Shader

Vertex Shader對于3D模型網(wǎng)格的每個頂點(diǎn)執(zhí)行一次,,主要是確定該頂點(diǎn)的最終位置,。 Vertex Shader還會準(zhǔn)備并輸出一些變量,傳給Fragment Shader使用,。

Fragment Shader

Fragment Shader對于最終得到的2D圖像的每個像素處理一次,。3D物體的表面最終顯示成什么樣將由它決定。 例如為模型的可見表面添加紋理,,處理光照,、陰影的影響等等,都在這里做,。Fragment Shader的輸出是一個RGBA格式的像素顏色值,。

OpenGL,OpenGL ES,,EGL和EAGL

OpenGL提供一組API,,各顯卡制造商和系統(tǒng)制造商來實(shí)現(xiàn)這組API。OpenGL ES (Embedded System)是OpenGL的嵌入式系統(tǒng)版本,,用于手機(jī)等移動設(shè)備,。 可以簡單認(rèn)為OpenGL ES是OpenGL的一個子集。

EGL是另外一組API,,主要由系統(tǒng)制造商實(shí)現(xiàn),。它負(fù)責(zé)OpenGL和原生窗口系統(tǒng)之間的接口,用于把OpenGL渲染的結(jié)果顯示在屏幕上,。 EAGL是Apple公司對EGL做了修改,,自己實(shí)現(xiàn)的一套屏幕顯示接口,一般只用于iOS和OS X系統(tǒng)中,。

OpenGL圖示

最后,,給出一幅包含上面這些概念的圖。


最近在做用OpenGL顯示YUV數(shù)據(jù)的工作,。完成之后,,決定將學(xué)到的東西整理總結(jié)一下。 在探索OpenGL的過程中,,一篇英文的tutorial讓我受益匪淺,。 我自己的總結(jié)也將主要取材于此。那篇tutorial的作者是個巴西人,其英文雖然語法不甚精湛,,但文章可讀性極好,。 如果你英文還可以,強(qiáng)烈推薦讀原文,,比我這總結(jié)有用多了,。

本文主要介紹OpenGL的基本概念。

OpenGL的組成

OpenGL主要包括三個要素:

  • 原件(Primitives)
  • 緩沖區(qū)(Buffers)
  • 光柵化(Rasterisation)

原件

原件包括點(diǎn),、線,、三角形。有的OpeGL版本還包括四邊形,,但在OpenGL ES(見文末說明)中只有這三種原件,。

緩沖區(qū)

包括三個概念:

  • 幀緩沖區(qū)(Frame Buffers)
  • 渲染緩沖區(qū)(Render Buffers)
  • 緩沖區(qū)對象(Buffer Objects)

幀緩沖區(qū)是GL儲存渲染結(jié)果的地方。它可以包含多個圖像,,也就是包含多個渲染緩沖區(qū),。

渲染緩沖區(qū)就是一個圖像,例如顏色圖像,、深度圖像,、模版圖像(決定每個位置是否可見的掩膜)等。

緩沖區(qū)對象就是程序員提供給OpenGL的數(shù)據(jù),,分為結(jié)構(gòu)類和索引類的,。 前者被稱為“數(shù)組緩沖區(qū)對象”或“頂點(diǎn)緩沖區(qū)對象”(“Array Buffer Object”或“Vertex Buffer Object”),即用來描述模型的數(shù)組,,如頂點(diǎn)數(shù)組,、紋理數(shù)組等; 后者被稱為“索引緩沖區(qū)對象”(“Index Buffer Object”),,是對上述數(shù)組的索引,。

光柵化

光柵化的過程就是根據(jù)緩沖區(qū)對象里提供的數(shù)據(jù)經(jīng)過渲染從3D模型得到2D圖像的過程。 得到的2D圖像會根據(jù)幀緩沖區(qū)的配置來決定是直接送到屏幕顯示或是做別的用處,。

OpenGL的流水線

從2.0版本開始,,OpenGL支持可編程的流水線。也就是說,,程序員可以通過Shader(一種程序)來控制GPU渲染的過程。 Shader分為Vertex Shader和Fragment Shader,。這兩種Shader是成對出現(xiàn)的,,GPU先執(zhí)行前者,后執(zhí)行后者,。

Vertex Shader

Vertex Shader對于3D模型網(wǎng)格的每個頂點(diǎn)執(zhí)行一次,,主要是確定該頂點(diǎn)的最終位置。 Vertex Shader還會準(zhǔn)備并輸出一些變量,,傳給Fragment Shader使用,。

Fragment Shader

Fragment Shader對于最終得到的2D圖像的每個像素處理一次,。3D物體的表面最終顯示成什么樣將由它決定。 例如為模型的可見表面添加紋理,,處理光照,、陰影的影響等等,都在這里做,。Fragment Shader的輸出是一個RGBA格式的像素顏色值,。

OpenGL,OpenGL ES,,EGL和EAGL

OpenGL提供一組API,,各顯卡制造商和系統(tǒng)制造商來實(shí)現(xiàn)這組API。OpenGL ES (Embedded System)是OpenGL的嵌入式系統(tǒng)版本,,用于手機(jī)等移動設(shè)備,。 可以簡單認(rèn)為OpenGL ES是OpenGL的一個子集。

EGL是另外一組API,,主要由系統(tǒng)制造商實(shí)現(xiàn),。它負(fù)責(zé)OpenGL和原生窗口系統(tǒng)之間的接口,用于把OpenGL渲染的結(jié)果顯示在屏幕上,。 EAGL是Apple公司對EGL做了修改,,自己實(shí)現(xiàn)的一套屏幕顯示接口,一般只用于iOS和OS X系統(tǒng)中,。

OpenGL圖示

最后,,給出一幅包含上面這些概念的圖。



    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多