2011-07-07 94 views
3

我已閱讀了一些關於XNA中的延期渲染的教程(Catalin Zima,TheCansin)。它們似乎都使用延遲渲染管線來渲染模型。這很棒,但它們只處理普通和高光貼圖。延期渲染 - 渲染具有單獨效果的模型

如果我的想法是正確的,如果我想渲染一個模型,例如其中有輝光效果,並且我有輝光着色器,那麼延遲渲染管線將不知道這個着色器?

如果我上面的問題是正確的,我是否需要在延期渲染管道渲染模型,然後使用輝光着色器重新渲染?

回答

3

真的有很多不同的方法。我的建議是在你的管道中加入材料面具。例如:渲染一個目標,該目標對於要在場景中呈現的每種類型的曲面而言只是純色。使用此遮罩目標在最終延遲光照通過中執行分支操作,併爲不同材質(例如純紅色爲phong陰影,純藍色爲啞光表面等)進行表面計算。正常情況下,您仍然使用漫反射,法線和高光gbuffer通道。

特別是對於發光效果,您還可以使用蒙版方法,並將該目標轉發到您的後期處理步驟,執行全屏模糊/發光,使用蒙版來確定哪些對象應該應用發光。