2017-01-23 52 views
1

的,我有以下渲染管線:如何後期處理着色器適用於部分場景

[Input texture that changes every frame] - >[3D content rendered on top of changing texture] - > [Post processing shader] - >[Composited texture with post processing applied to input texture + 3D content]

我想要實現這個管道:

[Input texture that changes every frame] - >[3D content rendered on top of changing texture]+[Post processing shader applied to 3D content] - >[Composited texture with post processing only applied to 3D content]

實現此目的的最佳方式是什麼?

我正在考慮將3D內容渲染到離屏紋理(帶有透明的非渲染部分),然後將後處理着色器應用到此紋理,然後在背景紋理頂部使用透明度渲染後處理紋理。

是否有這樣做的沒有更好的辦法?如果沒有,怎麼會去渲染與阿爾法紋理,然後合成它在以前的質感?

回答

1

如果你的後處理是一些簡單的像白色平衡或HDR,那麼你可以先呈現3D內容,應用後處理,然後渲染你的背景紋理深度測試啓用,並在適當的最大深度。

如果你的後處理比較複雜,像一個模糊或類似的東西,那麼恐怕渲染到第二紋理是唯一的解決辦法。渲染到RGBA紋理非常簡單,就像RGB渲染一樣。只要確保你使用整個管道預乘阿爾法,否則你將不能夠正確地構成的紋理。使用(0,0,0,0)顏色呈現清晰的紋理之前。

相關問題