渲染流水線的起點是CPU,即應用階段。大致可分為下面三個階段:
1.把數據加載到顯存
2.設置渲染狀態
3.調用DrawCall
1.把數據加載到顯存
所有渲染所需要的數據都需要從硬盤(Hard Disk Drive, HDD)中加載到系統內存(Random Access Memory,RAM)中。然后,網格和紋理等數據又被加載到顯卡上的存儲空間:顯存(Video Random Access Memory,VRAM)中。這是因為顯卡對於顯存的訪問速度更快,而大多數顯卡對於RAM沒有直接的訪問權利。

注意:真是渲染中需要加載到顯存的數據復雜的多。例如:頂點的位置信息、法線方向、頂點顏色、紋理坐標等。
之后,開始通過CPU來設置渲染狀態,從而使GPU進行渲染工作。
2.設置渲染狀態
渲染狀態:通俗的解釋就是,這些狀態定義了場景中的網格是怎樣被渲染的。例如:使用哪個頂點着色器/片段着色器、光源屬性、材質等。如果我們沒有更改渲染狀態,那么所有的網格都將使用同一種渲染狀態。

設置好渲染狀態后,CPU需要調用一個渲染命令來告訴GPU開始進行渲染,這個渲染命令就是DrawCall。
3.調用DrawCall
DrawCall就是一個命令,它的發起方是CPU,接收方是GPU。這個命令僅僅會指向一個需要被渲染的圖元(primitives)(點、線、三角面)列表,而不會包含任何材質信息(因為已經在2中完成了)。
當給定一個DrawCall時,GPU會根據渲染狀態(例如:材質、紋理、着色器等)和所有輸入的頂點數據進行計算,最終輸出像素。

