2
我正在重新創建一些Photoshop混合,我嘗試使用線性光模式。在Photoshop中,您將擁有100%不透明度的背景圖層,然後是設置爲線性光線作爲混合模式的50%不透明頂層。線性光模式的Alpha混合層
我確實找到了關於如何進行線性光線混合的信息,但它只適用於兩個圖層均處於100%不透明狀態時。
這裏是着色器代碼,將做到線性光模式,它提供了相同的結果,如Photoshop圖層時都在100%不透明度:
#define BlendLinearDodgef BlendAddf
#define BlendLinearBurnf BlendSubstractf
#define BlendAddf(base, blend) min(base + blend, 1.0)
#define BlendSubstractf(base, blend) max(base + blend - 1.0, 0.0)
#define BlendLinearLightf(base, blend) (blend < 0.5 ? BlendLinearBurnf(base, (2.0 * blend)) : BlendLinearDodgef(base, (2.0 * (blend - 0.5))))
我看了http://en.wikipedia.org/wiki/Alpha_compositing但我仍然有問題。
如何讓混合模式適用於半透明層?
您能否更新以下問題:1)Linear Light混合的公式是什麼? 2)你期待什麼結果? 3)在這種情況下你沒有得到你所期望的(即定義'不起作用')? 4)你的OpenGL代碼? – Tim
代碼片段應該回答你所有的問題。對於那些沒有Photoshop的人來說,截圖真的有幫助嗎? – Dex
我認爲這是一個OpenGL的問題,我沒有看到任何OGL代碼。我以爲你試圖模仿某種類型的Photoshop功能,但也許我誤解了你。 – Tim