渲染管线小结
渲染管線小結
VS —>Assembly(三角形組裝 )—>Clip—>屏幕映射—>Rasteration(光柵化,三角形像素掃描)—>PS—>
AlphaTest—>ZBuffer(ZTest,ZWrite)—>StencilTest—>blend
_____________________________________________________________________________________________________
1,zbuffer決定一個像素是否會寫到frontbuffer,同時,也會寫入或不寫Z值到zbuffer中,如果設定了 zwrite off,
表示僅進行ztest,而不把z寫入zbuffer,但像素還是會繪制的
2,模板測試簡單來說是:先在某些像素區域寫入模板值X,然后在此區域繪制其它物體的像素時通過 if(模板參考值><=x)來進行像素處理(如丟棄)
如實現鏡子效果:先繪制代表鏡子的四邊形,同時無條件寫入模板值2;然后繪制鏡子前的物體,使它顯示到鏡子中,繪制時若像素的模板值為2則繪制,否則丟棄。
這樣只有鏡子所處像素范圍的物體才會被繪制出來,超出的像素不顯示。
3,alpha測試,注意先繪制不透明物體,再繪制半透明物體,且按照距相機從遠向近繪制
若是將不透明物體繪制在近處,而將半透明物體繪制在遠處,就實現不了半透明效果了,只能看到不透明物體擋住了你想要半透明的物體。
原因:blend在流水線中處在 zbuffer的后面,不透明物體繪制在近處,半透明物體在zbuffer測試時重疊像素被丟棄,進入不了blend階段了
4,framebuffer就是colorbuffer,zbuffer,stencilbuffer,depthbuffer的合體,GL繪制到屏幕時使用的是colorbuffer。
推測:另有一個backbuffer在后臺繪制,繪制完成后交給framebuffer。framebuffer就是frontbuffer了?這里不確定
?_____________________________________________________________________________________________________
?
posted on 2018-08-12 18:16 時空觀察者9號 閱讀(...) 評論(...) 編輯 收藏
總結
- 上一篇: GPU寄存器相关
- 下一篇: VULKAN学习笔记-inter教学四篇