Okay so I have done this in hlsl before, but I always felt that my method was not that great or efficient. My goal is to change a characters color, and there diffuse texture is white already which can be broken down into any other color. I then use a mask that is black and white. White represents color change area and black area is left alone.
Code Snippet
float4 NewColor = multiMap * reColor * fvBaseColor - (multiMap * 0.9);
multiMap is the 2D mask, and reColor is the float4 color change. Is there a better way of doing this?