我正在编写一个工具,以协助将新角色修改为游戏“十字军国王II”,而且我有点卡在着色头发和胡须上。
游戏以这样的纹理开始:
http://serayen.com/ck2/bearduncoloured.png
然后将它与三种颜色混合 - 阴影,基底和高光,例如:
结果如下:
http://serayen.com/ck2/beardcoloured.png
它使用什么样的混合?我将如何在C#中进行操作?
答案 0 :(得分:0)
决定将其作为一个完整的答案,因为这里更容易格式化并提供示例。
作为猜测我会说它正在执行色彩乘法,根据像素的整体强度选择三种颜色中的哪一种乘以一个像素,可能使用三者之间的线性插值。除非您知道构成乘法的暗像素,基色像素或高光像素的阈值,否则您将无法正确复制此内容。
所以我假设他们的算法是:
(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
或类似的东西。希望这会有所帮助。