2013-11-28 25 views
0

如果我需要在場景中繪製N個燈光的數量,燈光類型可能是點/點/方向或天光,並且每個燈光投射一個陰影,渲染它使用opengl es 2.0渲染一個具有不同類型的N個燈光的場景

一遍還不足以做到這一點,所以我聽說了多道照明,但我不知道如何實現它。

我現在的想法是:按照其類型對燈進行分組,然後循環每個組並將場景渲染爲RT,最終混合(使用加混合或乘法?)所有RT到顏色緩衝區。但我認爲顏色緩衝區中的RGB值會溢出。

所以,我不知道該怎麼做,不能延遲執行的陰影,沒有光前通,無浮紋無HDR .......

回答

0

對於多通道照明,您可能需要使用添加劑乘法混合的組合。這是因爲對於每個燈光來說,你想要累積漫反射和鏡面反射項目,然後在最後你會用基礎材料屬性乘以累積光照。

你是絕對正確的,在大多數情況下,除非你非常小心,否則在某些時候計算得到的漫射值將超過1.0。它不會溢出每本身,因爲它是浮點,但它會夾緊1.0之前被寫入顏色緩衝區。

如果沒有HDR,最好的辦法就是改變衰減係數,使燈光衰減更快。這會將超亮區域的大小減小到非常接近您的光源,並且效果將會是非HDR鏡面高光(小斑點的顏色)。

相關問題