彼得,火焰畫家程序員在這裏。
Flame Painter中的減光模式類似於Photoshop ADD混合模式, 我在所有RGB通道中添加了少量顏色。
實施例(僞代碼):
color: C = (50, 20, 10) // RGB channels = 50, 20, 10
lighter color: C = C + C // RGB channels = 100, 40, 20
lighter color: C = C + C // RGB channels = 150, 60, 30
...
添加,直到它的顏色C成爲白色的顏色。 (255,255,255)
如果顏色是純紅色,藍色,綠色,紫色,黃色或洋紅色,則此方法不起作用。 示例紅色:
color: C = (50, 0, 0) // RGB channels = 50, 0, 0
lighter color: C = C + C // RGB channels = 100, 0, 0
lighter color: C = C + C // RGB channels = 150, 0, 0
...
最亮的顏色爲紅色。 (255,0,0)
這就是爲什麼我添加少量(1種顏料)到通道,其中默認顏色爲0。 示例:
color: C = (50, 1, 1) // RGB channels = 50, 1, 1
lighter color: C = C + C // RGB channels = 100, 2, 2
lighter color: C = C + C // RGB channels = 150, 3, 3
...
各路顏色將再次是白色的。 (255,255,255)
當我用glBlendFunc(GL_SRC_ALPHA,GL_ONE)添加兩個紅色(255,0,0)時,我得到一個紅色:http://www.andersriggelsen.dk/glblendfunc.php當我選擇純紅色時,我想獲得更淺的紅色,就像這裏http://www.escapemotions.com/experiments/flame/。也許它不僅僅是純粹的OpenGL混合,而且火焰的中心最終變成了白色,與它下面的顏色無關。 – 2013-05-21 15:14:30
顏色escapemotions.com/experiments/flame可能取決於粒子的位置。它似乎離光標越近,它就是最白的。這可以解釋這種影響,無需任何特殊的混合。 – 2013-06-05 20:59:52