shr->spec values could be greater then 1.0, causing negative color when using (1.0-shr->spec[i]) as a blending factor. When shr->spec[i] is 1.0 the mircol is ignored, so only mix the mircol when needed (like clamping the spec).
shr->spec values could be greater then 1.0, causing negative color when using (1.0-shr->spec[i]) as a blending factor. When shr->spec[i] is 1.0 the mircol is ignored, so only mix the mircol when needed (like clamping the spec).