百人計劃圖形1.4——圖形API介紹
電腦的工作原理:電腦是由各種不同的硬件組成,由驅(qū)動軟件驅(qū)使硬件進行工作。所有的軟件工程師都會直接或者間接的使用到驅(qū)動。
定義:是一個圖形庫,用于渲染2D、3D矢量圖形的跨語言、跨平臺的應(yīng)用程序編程接口(API)。針對GPU。



新版本改變的是增加新的片元著色器去替代原先的一些方法


OpenGL2.0流程
首先是模型準備,然后頂點著色器去編輯,之后將點面進行圖元重組,光柵化,片段著色器的編寫,最后經(jīng)過三種測試輸出frame buffer

OpenGL3.1流程
先拿到buffer緩存?zhèn)鞯巾旤c的緩存池中,之后傳給頂點著色器進行ttransform的feedback為下一階段準備,之后進行光柵化、片元著色器的計算、逐片元渲染、輸出frame buffer。

OpenGL ES不同點
1.兼容性?
OpenGL ES 3.0是向后兼容OpenGL ES 2.0的。也就是說使用2.0編寫的應(yīng)用程序是可以在3.0中繼續(xù)使用的。
2.新特性
采用陰影貼圖、體渲染 ( volume rendering )、基于GPU的粒子動畫、幾何形狀實例化、紋理壓縮和伽馬校正等技術(shù)的重要功能在2.0中都不具備。3.0將這些功能引人,同時繼續(xù)適應(yīng)嵌入系統(tǒng)的局限性。這一部分在下一章詳細介紹。
3.渲染管線
3.0中移除了Alpha測試和邏輯操作(LogicOp)兩部分,這兩部分存在于OpenGL ES 2.0和l OpenGL.ES 1.x 中。
移除 Alpha測試是因為片段著色器可能拋棄片段,因此 Alpha測試可以在片段著色器中進行。移除邏輯操作(( LogicOp)是因為它很少被使用。

OpenGL ES 3.0新功能
紋理

2.著色器

3.幾何形狀

4.緩沖區(qū)對象

5.幀緩沖區(qū)

驍龍Adreno對應(yīng)ES版本型號

支持OpenGL3.2(視頻中)

怎么看待Vulkan?
Vulkan是一個跨平臺的2D和3D繪圖應(yīng)用程序接口(API)。相對于 OpenGL,Vulkan大幅降低了 CPU 在提供重要特性、性能和影像質(zhì)量時的“API 開銷” (CPU 在分析游戲的硬件需求時所執(zhí)行的后臺工作),而且可以使用通常通過 OpenGL 無法訪問的 GPU 硬件特性。Vulkan能夠支持深入硬件底層的控制,為 Windows和 Linux帶來更快的性能和更高的影像質(zhì)量。Vulkan的API 還提供超高的OS兼容性、渲染特性和硬件效率。

vulkan現(xiàn)階段復(fù)雜的原因,是相對于OpenGL這種靈活繪圖的api,vulkan初始設(shè)計的結(jié)構(gòu)靈活性就太差。渲染管線全部封裝到了一個pipeline里面,但更改狀態(tài)還很復(fù)雜,甚至不能改。比如頂點屬性,如果只畫只有位置的頂點,要么轉(zhuǎn)成通用頂點格式(位置、法線、向量、紋理坐標),要么重建一個pipeline,只支持位置頂點,就是這樣。
結(jié)合百科以及其他人帖子相關(guān)信息的了解后,個人認為Vulkan有可能是之后移動端的主力之一,對于它的學習雖然相對于OpenGL很困難,但還是有必要去學習的,畢竟國內(nèi)的游戲多數(shù)以移動端為主。