LuckyStrike Написал, да?
Ну, во-первых, матрица должна быть 5х5 (3 канала цвета + прозрачность + однородность (ищи в нете про однородные координаты)). Но может быть .NET'у на это плевать и лишние элементы он игнорирует. Во-вторых, матрица должна быть единичной, то есть все элементы главной диагонали должны быть равны 1, остальные 0.
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
В-третьих, я вроже как уже писал, что за интенсивность красного канала отвечает элемент с координатами [1,1], зеленого - с координатами [2,2], синего - [3,3]. Все остальные элементы должны быть как в приведенной выше матрице.
У тебя в коде все время меняется только красный канал и еще неизвестно что творится в остальной части матрицы. Должно быть что-то типа:
Код: float[][] redMatrix = {
new float[] { (float)vScrollBar1.Value/255.0f, 0, 0, 0, 0 },
new float[] {0, 1, 0, 0, 0},
new float[] {0, 0, 1, 0, 0},
new float[] {0, 0, 0, 1, 0},
new float[] {0, 0, 0, 0, 1} };
float[][] greenMatrix = {
new float[] {1, 0, 0, 0, 0},
new float[] {1, (float)vScrollBar1.Value/255.0f, 0, 0, 0 },
new float[] {0, 0, 1, 0, 0},
new float[] {0, 0, 0, 1, 0},
new float[] {0, 0, 0, 0, 1} };
float[][] greenMatrix = {
new float[] {1, 0, 0, 0, 0},
new float[] {0, 1, 0, 0, 0},
new float[] {0, 0, (float)vScrollBar1.Value/255.0f, 0, 0 },
new float[] {0, 0, 0, 1, 0},
new float[] {0, 0, 0, 0, 1} };