2011-04-02 81 views
3

我有一個關於實時渲染後處理效果的問題。實時渲染後處理效果

他們一般如何工作?即如何訪問最終圖片,以便您可以對其進行更改?

你把它渲染成紋理嗎?如果是這樣,你如何確保紋理適合你的屏幕尺寸?

謝謝!

回答

6

基本工作流程:

  • 渲染場景的渲染目標/紋理(屏幕尺寸,通常是相同的格式)
  • 復位渲染目標 - 要麼到另一個渲染目標/紋理或實際後備緩衝
  • 設置後處理的像素着色器,場景的紋理綁定到一個採樣
  • 使用虛擬頂點着色器
上繪製場景中的全屏幕四210

在後處理像素着色器中,如果您知道當前紋理元素的歸一化x,y位置(由全屏四元素插值到像素着色器階段的紋理座標給出),則訪問各個場景像素非常簡單。

許多後期處理效果需要多次傳遞給臨時渲染目標。一個例子就是臭名昭着的「綻放」效果:您將場景紋理,減去黑色部分,模糊並縮小剩餘圖像(通常使用乒乓邏輯多次完成以重新使用渲染目標)。最後的構圖步驟只是添加布盧姆紋理和原始場景。

+0

謝謝,但如果我的渲染窗口是例如377x251和我使用的rendertarget紋理是512x512,使用這種技術不會產生一些舍入錯誤? – clamp 2011-04-02 16:31:45

+0

當然你的渲染目標應該與屏幕大小相匹配。 – 2011-04-02 16:32:13

+0

您可以使用該512x512紋理的377x251部分來避免性能和兼容性問題。 – Kromster 2011-04-02 20:56:36