In meinem Raytracer heist Multiplizieren Komponenten weise
D.h.
Orginalfarbe
RGB => Trippel ( x,y,z) mit x,y,z in [ 0..1 ]
Dito mit Multiplicant
RGB => Tripel ( a,b,c)
dann Neue Farbe = ( x*a*256,y*b*256,z*c*256)
Probier mal das .
So wie ich dich da Verstehe geht dein Wunsch aber mittels +
Neue Farbe = ( (x+a)*256,(y+b)*256,(z+c)*256)
du must die einzelwerte nur noch Begrenzen
also der Art
max(0,Min(255,round((x+a)*255))) ...