2013-11-01 116 views
1

我有兩個像素陣列,前景和照明。當我在照明陣列上繪製一個白色的徑向漸變(模糊的圓圈)時,我希望它使前景可見 - 就像在terraria/starbound中的火炬。但是,我也希望能夠混合不同顏色的照明,而不是陷入黑白之間。獲取alpha通道/不透明度照明工作

那麼,我該如何操縱像素陣列,以便它們「相乘」(我相信這是所謂的)?還是有沒有更容易的方法使用RGBA,我一直無法工作(白色閃爍黑色或圖像越來越posterized)?

迄今爲止,大多數關於alpha通道/不透明度的回覆都使用了java的庫,對於這個項目我不想使用它。

任何幫助非常感謝!

+0

這聽起來很像基本的掩蔽。您以「空白」或「黑色」圖像爲基礎,並使用燈光陣列作爲基礎,您可以決定將多少前景像素渲染到「空白」上... – MadProgrammer

回答

0

如果您想知道blending modes(如「乘法」)如何在像素值級別的圖像編輯程序中工作,請閱讀:How does photoshop blend two images together?

請注意,如果您想讓圖像更亮,則需要像「屏幕」這樣的模式,因爲「倍增」會使圖像更暗。

+0

好的,我是使用添加劑方法將光源混合在一起;然而,我得到不規則的顏色(如白色和藍色增加黃色?)。 – Jiji

+0

你是什麼意思的添加劑方法? 「添加」混合模式?也許你的溢出值大於255。請注意,這不是(A + B),但是最小值(255,(A + B)) – lbalazscs

+0

哦,是的,添加混合方法。是否有可能當0xffffff + 0x0000ff時,它循環回到0,並從那裏開始增加,所以雖然它小於255,但它經歷了255^3? 我們可以通過比評論更簡單的媒介來討論這個問題嗎?感謝:) – Jiji