渲染流水線的起點(diǎn)是CPU泵督,也就是應(yīng)用階段床牧,可以分為三個(gè)步驟彭谁。
- 把數(shù)據(jù)加載到顯存
- 設(shè)置渲染狀態(tài)
- 調(diào)用drawcall
把數(shù)據(jù)加載到顯存
所有的渲染數(shù)據(jù)都需要從硬盤中加載到內(nèi)存史煎,然后網(wǎng)格紋理等數(shù)據(jù)又被加載到顯存,這是因?yàn)轱@卡對(duì)于顯存的訪問速度更快吧慢。加載到顯存中的數(shù)據(jù)例如有頂點(diǎn)的位置信息涛漂,法線方向赏表,頂點(diǎn)顏色检诗,紋理坐標(biāo)等
設(shè)置渲染狀態(tài)
這些狀態(tài)定義了場景中的網(wǎng)格是怎樣被渲染的,例如瓢剿,使用哪個(gè)Vertexshader逢慌、Fragmentshader,光源屬性间狂,材質(zhì)等攻泼,準(zhǔn)備好后調(diào)用一個(gè)渲染命令告訴GPU開是渲染,這個(gè)命令就是drawcall。
調(diào)用drawcall
接觸過渲染優(yōu)化的人都知道drawcall命令忙菠,該命令是由CPU發(fā)起何鸡,執(zhí)行方是GPU,這個(gè)命令指向一個(gè)需要被渲染得的圖元列表牛欢,當(dāng)GPU接收到命令后就會(huì)根據(jù)渲染狀態(tài)和輸入的數(shù)據(jù)進(jìn)行計(jì)算骡男,最終輸出成屏幕上那些漂亮的像素。
點(diǎn)擊關(guān)注我的微博傍睹,給大家?guī)須g樂