В первой версии таблица перевода режимов была моей реконструкцией, а Darken вообще стоял как открытый вопрос. Теперь там точные значения из исходников движка UE2 (UT2003 v2107): D3DDrv/Src/D3DMaterialState.cpp, функция SetParticleMaterial, и точно такая же таблица в OpenGLDrv.
- Darken = Zero / OneMinusSrcColor, то есть dst × (1 − src) — затемнение;
- Brighten = One / OneMinusSrcColor, то есть src + dst × (1 − src) — screen-подобное смешивание, а не SrcColor / One, как было у меня в 1.0;
- остальные режимы тоже выписаны дословно, включая Modulated с его цветом тумана 127 и Regular с полностью выключенным альфа-смешиванием.
Те же самые значения независимо получил
gawric, сняв их перехватом вызовов DirectX у живого клиента — исходники и перехват сошлись один в один.
Его же важное замечание добавлено в раздел «что осталось неясным»: блендинг одного и того же эффекта различается между хрониками (он сравнивал Interlude и Salvation), так что цифры из HF268 нельзя переносить на другую версию вслепую.