Ik wil een algorithm maken om 2 kleuren te mengen. Mijn eerste idee was om de rood, groen en blauw waarden elk bij elkaar op te tellen en te delen door twee, maar dat geeft een additive kleurenmenging. De kleur die ik wil bereiken als resultaat, moet gemengd zijn zoals verf op papier. Voorbeeld:
Bij additive mengen wordt geel (0xFF FF 00) met blauw (0x00 00 FF) grijs (0x77 77 77). Dat klopt voor een beeldscherm of voor andere licht uitstralende kleurenbron, maar niet op verf.
Verf straalt geen kleur uit, maar absorbeert allle andere kleuren. Rode verf absorbeert als er wit licht op valt het groene en blauwe deel van het spectrum. Maar er is een extra effect. De kleuren die geabsorbeerd worden zijn nooit puur, maar een mix van verschillende frequenties die in meer of mindere maten geabsorbeerd worden. Stel dat je nu geel met blauw mengt, dan zullen de frequenties van die twee voor het grootste deel geabsorbeerd worden door elkaars verf, maar daar waar de twee verven overlappen qua freqenties die wel weerkaatst worden zullen ze dus wel reflecteren. Daardoor wordt geel met blauw dus groen (wat in het midden ligt). Een plaatje verduidelijkt de situatie:

De tint van het groen zal heel erg afhankelijk zijn van de mate van overlap tussen de twee frequentie gebieden, en dus van de soort gele en soort blauwe verf die gebruikt wordt (los van de kleur die ervaren wordt) maar dit wil ik verder buiten beschouwing laten (ga uit van een soort standaard basiskleuren oid met een redelijk breed spectrum). ZOu er geen overlap zijn zou je dus wel weer een soort grijs als resultaat krijgen, hoe meer overlap hoe groener het wordt.
Wat ik tot nu toe heb kunnen vinden is dat het Kubelka Munk model zoiets doet, maar ik kan hier geen implementatie van vinden. Ook vraag ik me af of er niet een eenvoudiger model mogelijk is.
Is er iemand die ideeen of suggesties heeft?
Bij additive mengen wordt geel (0xFF FF 00) met blauw (0x00 00 FF) grijs (0x77 77 77). Dat klopt voor een beeldscherm of voor andere licht uitstralende kleurenbron, maar niet op verf.
Verf straalt geen kleur uit, maar absorbeert allle andere kleuren. Rode verf absorbeert als er wit licht op valt het groene en blauwe deel van het spectrum. Maar er is een extra effect. De kleuren die geabsorbeerd worden zijn nooit puur, maar een mix van verschillende frequenties die in meer of mindere maten geabsorbeerd worden. Stel dat je nu geel met blauw mengt, dan zullen de frequenties van die twee voor het grootste deel geabsorbeerd worden door elkaars verf, maar daar waar de twee verven overlappen qua freqenties die wel weerkaatst worden zullen ze dus wel reflecteren. Daardoor wordt geel met blauw dus groen (wat in het midden ligt). Een plaatje verduidelijkt de situatie:

De tint van het groen zal heel erg afhankelijk zijn van de mate van overlap tussen de twee frequentie gebieden, en dus van de soort gele en soort blauwe verf die gebruikt wordt (los van de kleur die ervaren wordt) maar dit wil ik verder buiten beschouwing laten (ga uit van een soort standaard basiskleuren oid met een redelijk breed spectrum). ZOu er geen overlap zijn zou je dus wel weer een soort grijs als resultaat krijgen, hoe meer overlap hoe groener het wordt.
Wat ik tot nu toe heb kunnen vinden is dat het Kubelka Munk model zoiets doet, maar ik kan hier geen implementatie van vinden. Ook vraag ik me af of er niet een eenvoudiger model mogelijk is.
Is er iemand die ideeen of suggesties heeft?