2012-03-28 126 views
1

我正在研究將我的forward-renderer轉換爲延遲渲染器,但存在一個我找不到(或無法概念化)的問題,那就是如何將所有燈場面積累。在向前渲染中,我會將所有燈光上傳到着色器,但由於各種對象的大小,我被限制爲4。我如何將累積的燈光信息提供給最終的複合材質着色器?我是否以與每個場景對象呈現方式類似的方式渲染每個燈光?我已經看到了一些將每個點光源渲染爲一個球體的例子,但是我看不出這種方法如何衰減。延遲渲染中的光積累

+0

您將渲染具有不同幾何形狀的不同燈光類型。一些燈,如方向燈,將是一個全屏幕四方。其他人,如標準的Omni,可以是一個球體。射燈可以是錐形。 – Robinson 2012-03-29 10:40:30

回答

4

延期着色的思想是,你在一個屏幕尺寸的圖像操作中對每個光進行照明計算,即對於每個光進行自己的延期着色過程。光線加起來,所以你使用加法混合模式(沒有alpha通道,只是總結)。這也是延遲着色只適用於不透明幾何體的原因,並且如果要應用於半透明幾何體,則需要額外的準備工作(如深度剝離場景)。