ここで例をフォーマットして提供する方が簡単なので、これを完全な回答にすることにしました。
推測として、おそらく3つの間の線形補間を使用して、ピクセルの全体的な強度に基づいてピクセルを乗算する3つの色を選択して、色の乗算を実行していると思います。乗算のための暗い、ベース、またはハイライト ピクセルを構成するしきい値を知らない限り、これを正しく複製するのは難しいでしょう。
したがって、彼らのアルゴリズムは次のとおりだと思います。
(pixel(x,y).color * dark.color * THRESHDARK - min(pixel(x,y).intensity, THRESHDARK) //dark blending +
(pixel(x,y).color * base.color * (pixel(x,y).intensity - THRESHDARK) / (THRESHLIGHT-THRESHDARK)) //middle blending +
(pixel(x,y).color * highlight.color * pixel(x,y).intensity - THRESHLIGHT) //light blending
または似たようなもの。お役に立てれば。