Est-il un algorithme pour le mélange des couleurs qui fonctionne comme le mélange des couleurs réelles?

La commune de mélange de couleurs RVB est très différent à partir d'un mélange de couleurs pour les peintures,
c'est le mélange de la lumière au lieu du mélange des pigments.

Par exemple:

Blue (0,0,255) + Yellow (255,255,0) = Grey (128,128,128)

(Il devrait être Bleu + Jaune = Vert)

Est-il un algorithme connu pour le mélange des couleurs qui fonctionne comme le mélange des couleurs réelles?


Mon approche

J'ai déjà essayé suivantes:

La conversion de deux couleurs HSV et le mélange de teintes (multiplié par un coefficient calculé à partir de la saturation),
et un simple moyen pour la saturation et la valeur des canaux. Ensuite, j'ai calculé la moyenne de luminance à partir de deux
les couleurs et ajusté la couleur résultante de ce match de luminance.
Cela a fonctionné assez bien, mais la teinte de mélange a été parfois mal, de l'e. g.:

Red (Hue 0°) + Blue (Hue 240°) = Green (Hue 120°)

J'ai compris que parfois j'ai besoin de modifier la teinte de la valeur de 360° (lorsque la différence entre
des teintes est supérieure à 180°).

Red (Hue 360°) + Blue (Hue 240°) = Magenta/fuchsia (Hue 300°)

Mais cette évolution n'a pas été très bon aussi, par exemple:

Cyan (Hue 179°) + Red (Hue 0°) = Hue 89.5°
Cyan (Hue 181°) + Red (Hue 0°) --> shifting is performed (the difference is greater than 180°)
Cyan (Hue 181°) + Red (Hue 360°) = Hue 270.5°

(Teinte 179 + Rouge) et (Teinte 181 + Rouge) des résultats de deux couleurs différentes.


Puis j'ai essayé CIE espace couleur Lab (comme dans Photoshop), qui est conçu pour être au plus près à la façon dont les êtres humains perçoivent les couleurs.

Je l'ai utilisé qu'une simple moyenne correspondant à chacune des deux canaux, mais les résultats n'étaient pas satisfaisants,
pour exemple, j'ai obtenu rose (64, 26, -9.5) de bleu (98, -16, 93) et jaune (30, 68, -112). Ces coefficients
ont été prises à partir de Photoshop.

Peut-être que si j'ai utilisé une autre opération que la moyenne, il pourrait fonctionner, mais
Je ne sais pas quoi.


CMJN ne fonctionne pas trop, les résultats sont comme RVB ou LAB.


Il semble que ni le trivial additif ni soustractive le mélange des couleurs dans l'un de ces espaces de couleurs rendements des résultats naturels.


Implémentations de travail

Krita – Peinture mélangeur

Trame graphique de l'éditeur de Krita a eu un travail de mise en œuvre de plus réaliste, le mélange des couleurs à un certain point: http://commit-digest.org/issues/2007-08-12/ (Peinture de mixage plugin)

Ils disent que c'est la première application qui met en œuvre une technologie spéciale à l'aide de Kubelka et Munk les équations qui décrivent le comportement des pigments.

Voici une vidéo de Krita le mélange des couleurs: https://www.youtube.com/watch?v=lyLPZDVdQiQ

Papier par FiftyThree

Il y a aussi article au sujet de la couleur de fusion dans le Document app pour iOS développé par FiftyThree. Ils décrivent comment ils innovation et l'expérimentation dans le domaine et offrent également des échantillons de mélange de bleu et de jaune que les résultats en vert. Cependant, le processus réel ou de l'algorithme n'est pas vraiment décrite.

De citer:

"Dans la recherche d'un bon mélange de l'algorithme, nous avons d'abord essayé interpolation des valeurs de couleur différentes-espaces: RGB, HSV, et HSL, puis CieLAB et CieLUV. Les résultats ont été décevants", dit Chen. "Nous savons que le rouge et le jaune doit produire l'orange ou le rouge et le bleu doit faire purple—mais il n'y a pas moyen d'arriver à ces couleurs n'importe quel espace de couleurs que vous utilisez. Il y a un génie axiome: Faire la chose la plus simple qui pourrait éventuellement fonctionner. Eh bien, nous avions essayé la méthode la plus simple des approches possibles et qu'ils ne se sentent pas à même de loin, à droite."

Il semble même que Krita, Papier met en œuvre la Kubelka-Munk modèle:

[...] le Kubelka-Munk modèle avait au moins six valeurs pour chaque couleur, y compris la réflexion et l'absorption des valeurs pour chacune des couleurs RVB. "Tandis que l'apparition d'une couleur sur un écran peut être décrit en trois dimensions, le mélange de couleur est en fait qui se produit dans les six dimensions de l'espace", explique Georg Petschnigg, FiftyThree est co-fondateur et chef de la direction. Le Kubelka-Munk papier a permis à l'équipe de traduire un problème d'esthétique dans un cadre mathématique. [...]

Partir de toutes ces informations, il semble que mise en œuvre, basé sur la Kubelka-Munk modèle pourrait être la voie à suivre et offrent des résultats qui sont plus proches de la réalité.

Même s'il ressemble à un processus compliqué, je n'ai pas encore vu beaucoup de bonnes informations sur la façon de mettre en place quelque chose comme ça.


Questions liées

Ces questions ont été posté après celui-ci, tous liés à la même chose.

Aucun d'eux n'a vraiment la réponse.


D'autres liens et ressources connexes