请问有没有人知道如何找到或实现库贝尔卡-蒙克函数来混色,就像自然油漆一样?Emanuelle Tamponi在Krita中实现了这个函数,这是一个开源项目,但我无法找到任何分享“自然”混合颜色的方法,可能这是商业机密或私人秘密,但如果你不问就永远不会知道!
请问有没有人知道如何找到或实现库贝尔卡-蒙克函数来混色,就像自然油漆一样?Emanuelle Tamponi在Krita中实现了这个函数,这是一个开源项目,但我无法找到任何分享“自然”混合颜色的方法,可能这是商业机密或私人秘密,但如果你不问就永远不会知道!
欢迎在krita中重复使用我们的代码。它位于calligra/krita/plugins/extensions/painterlyframework中。它需要pigment库作为后备,但我想你可以很容易地从中抽象出来。
但请注意,该代码是根据GPLv2+许可证发布的。如果您重用代码或光源文件,则您的代码也需要遵守GPL。
(有关更多信息,请与我联系-- boud@valdyas.org或irc.freenode.net上的boud #krita,我是Krita的维护者)。
仅凭RGB值提供的信息不足以进行真正的Kubelka-Munk计算,因为您需要横跨可见光谱的吸收和散射曲线。相反,您可以从RGB值生成代表性反射率曲线,然后使用反射率信息执行减法混合,例如,通过计算两个反射率曲线的加权几何平均值。
以下是我创建的实现,使用简化的Kubelka-Munk模型。它假定当混合时所有颜色具有相同的浓度并且所有颜色都是不透明的。如果它有用,请随意以任何方式使用它。