說到渲染流程,咱們能夠用一張圖,清楚的看到渲染的一系列流程。廢話不說,看圖(圖片取自[Tobesky] 數組
這樣圖很是重要,處理任何圖形渲染,都須要依據這張圖的流程。下面咱們來細細說明這張圖表達的意思。Client(客戶端)/ Server(服務端。在咱們平常開發中手機端稱爲客戶端,後臺稱爲服務端。在這裏是要區分開來的。圖中虛線分爲上下兩部分,上半部分是客戶端,下半部分爲服務端。 客戶端
是存儲在CPU存儲器中的,而且在應用程序中執行,或者在主系統內存的驅動程序中執行(咱們寫的代碼,OpenGL 提供的API就是在客戶端執行) 服務端
驅動程序會將渲染命令和數組組合起來,發送給服務器執行。(在一臺典型的我的計算機上,服務器就是實際上就是圖形加速卡上的硬件和內存)服務器
頂點着色器(Vertex Shader)和 Fragment Shader(片元着色器)和圖元裝配(primitive Assembly)code
1.屬性 2.uniform 值 3.紋理orm
每個頂點
都要做改變的數據元素浮點數、整數、布爾數據
紋理座標、顏色值、關照計算表面法線
屬性只提供給頂點着色器使用
,對於片元着色器木有太大意義無數次
地使用每一個批次
改變一次,而不是每一個頂點改變一次變換矩陣
浮點值、整數、布爾值
標量類型、矢量類型、uniform矩陣
在圖表中第四種數據類型是輸出(out)
;輸出數據是做爲一個階段着色器的輸出定義的,二後續階段的着色器則做爲輸入定義。cdn