¿Cómo mezclar colores "naturalmente" con C #?

Tengo que mezclar algunos colores de forma natural. Esto significa

blue + yellow = green 
blue + red = purple

Y así. Obtuve los colores como valores RGB. Cuando trato de mezclarlos obtuve los resultados "RGB" correctos como

green + red = yellow
yellow + blue = white

Pero no los resultados correctos de "pintura húmeda natural". ¿Alguna buena idea de cómo mezclar RGB de forma natural?

Sería genial si alguien supiera una solución dentro delMicrosoft.Xna.Framework.Graphics espacio de nombres pero una solución genérica también ayudaría :)

@Jay Bazuzi:

Publique una muestra de código que muestre lo que está tratando de hacer.

Claro, esta es mi función para mezclar los dos colores RGB.

public Color colorMixer(Color c1, Color c2)
{

    int _r = Math.Min((c1.R + c2.R),255);
    int _g = Math.Min((c1.G + c2.G),255);
    int _b = Math.Min((c1.B + c2.B),255);

    return new Color(Convert.ToByte(_r),
                     Convert.ToByte(_g),
                     Convert.ToByte(_b));
}

Lo que he leído hasta ahora en este hilo es muy prometedor: convertiré C1 y C2 a Lab *, mézclalos: conviértelos de nuevo a RGB y devuelve ese color.