Какова формула для альфы, смешивающейся для многих пикселей?

Чтобы обновить значение ModelState, сначала необходимо сбросить ModelState следующим образом:

// if only str is provided
 if (string.IsNullOrEmpty(item.KeyInfo) && !string.IsNullOrEmpty(str))
 {
    ModelState.Clear();
    Helpers.FillItemModel(item, str);   //fill data
 }

ModelState.Clear() сбросит всю модель. Если вы не хотите этого и просто хотите обновить значение нескольких полей, оставив неизменным значение другого поля, используйте ModelState["fieldName"].Value = "newValue в своем классе помощника.

6
задан avp 1 October 2008 в 10:17
поделиться

2 ответа

Смешивание альфы является одной из тех тем, которая имеет больше глубины, чем Вы могли бы думать. Это зависит от того, что альфа-значение означает в Вашей системе, и если Вы не угадаете, то затем Вы закончите с результатами, которые смотрят отчасти хорошо, но тот дисплей странные артефакты.

Проверьте Носильщика и классическую статью Вареного пудинга, "Составляющую Цифровые изображения" для большого, читаемого обсуждения и всех формул. Вы, вероятно, хотите "по" оператору.

Это кажется на выполнение чего-то ближе к объемной визуализации. Для формулы и ссылок, посмотрите Графику FAQ, вопрос 5.16, "Как я выполняю объемную визуализацию?".

10
ответ дан 9 December 2019 в 20:51
поделиться

Существуют различные возможные способы сделать это, в зависимости от того, как значения RGBA на самом деле представляют свойства материалов.

Вот возможный алгоритм. Запустите с заключительных пиксельных цветов lightr=lightg=lightb=0, lightleft=1;

Для каждого r, g, b, пиксель, с которым встречаются, оценивает:

lightr += lightleft*r*(1-a)
lightg += lightleft*g*(1-a)
lightb += lightleft*b*(1-a)
lightleft *= 1-a;

(Значения RGBA нормализованы между 0 и 1, и я предполагаю, что непрозрачное средство a=1, a=0 означает совершенно прозрачный),

Если первый пиксель, с которым встречаются, является синим с непрозрачностью 50%, то 50% доступного цвета установлены на синий, и остальные неизвестные. Если красный пиксель с непрозрачностью, 50% являются следующими, то 25% остающегося света установлены на красный, таким образом, пиксель имеет 50%-й синий, 25%-й красный цвет. Если зеленый пиксель с непрозрачностью, 60% являются следующими, то пиксель является 50%-м синим, 25%-м красным, 15%-м зеленым цветом, с 10% легкого остающегося.

Физические материалы, которые соответствуют этой функции, являются световым излучением, но частично непрозрачными материалами: таким образом пиксель посреди стека никогда не может затемнять итоговый цвет: это может только предотвратить свет позади него от увеличения итогового цвета (будучи черным и полностью непрозрачным).

2
ответ дан 9 December 2019 в 20:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: