2010-08-09 42 views
1

我一直在考慮如何在我的引擎中實現PostProcessing管理器(Vanquish)。

實現PostProcessing管理器

我正在努力讓我的腦海變得像後處理技術一樣工作。我已閱讀並查看creators.xna.com網頁上的後期處理示例,但這似乎是重新呈現應用後期處理效果的模型。

我可以爲靜態模型添加此功能,但是當涉及到重新繪製蒙皮模型時,我會感到困惑,因爲他們已經將自己的技術應用於其效果。

有人能幫助我通過指出我的正確方向來理順我的想法嗎?

回答

1

通常後期處理工作在整個屏幕上。這很簡單,真的。

你設置什麼渲染目標設備上(我假設你能弄清楚如何創建從樣品渲染目標):

GraphicsDevice.SetRenderTarget(renderTarget); 

從此時開始渲染一切都會被渲染到達目標。當你做,你可以將設備設置回繪製到後臺緩衝區:

GraphicsDevice.SetRenderTarget(null); 

最後你可以得出使用渲染目標,就好像它是一個質地(this is new in XNA 4.0,在XNA 3.1你不得不打電話GetTexture就可以了)。

因此,爲了使處理後的效果:

  • 渲染場景的渲染目標
  • 切換回後臺緩衝區
  • 渲染渲染目標全屏幕(使用SpriteBatch將盡)使用像素着色器,將應用您的後期處理效果。

你聽起來像你想這樣做每個模型?這似乎有點奇怪,但certianly可能。只需確保渲染目標具有透明的alpha通道,然後使用alpha混合進行繪製。

或者你不是指後期處理?你是否真的希望改變模型繪製的像素着色器,同時保持蒙皮模型頂點着色器?

+0

這是很棒的信息。我不想在每個模型的基礎上做到這一點,這正是我想擺脫的:o) – 2010-08-09 12:59:51