As Roblox developers, it is currently impossible to swap colors individually on a post-processing level, and we need to resort to changing colors of actual parts or their textures, or changing the color globally via other post-processing effects, affecting every other color as well.
This is problematic in cases where we only want to swap certain colors of objects, without affecting other of their colors. Doing this on a post-processing level would remove the need to spend time and resources on adjusting every single color of every object in the game.
What we can do
Consider the below setup, with default colors, without any effects applied:
Now, below I included currently available options for post-processing level color adjustment.
Inverted Saturation:
Inverted Contrast:
Tint adjustment:
Of course, these can be mixed together at different levels to achieve a unique set of “swapped colors”. The problem is—none of these options allow for individual color adjustment and instead they’re adjusting all colors the same way. Not to mention—using them that way has very little benefits.
What we can’t do
Let’s look at the setup again, with default colors:
Imagine I wanted to replace colors blue, red and green with white, blue, and orange respectively like so:
This is currently impossible without recoloring objects or retexturing them (assuming they use a texture).
Ok, but this is still just swapping colors for the sake of it, maybe for artistic expression.
What about swapping colors to support colorblindness of different kinds?
Below are representations of what colorblind people would see, without any swapped colors that would make it easier to differentiate them.
Deuteranomaly:
Deuteranopia:
Protanomaly:
Protanopia:
Tritanomaly:
Tritanopia:
Some colors get blended together, but color-swapping would help improve this.
If Roblox made it possible to adjust how the color of each pixel is rendered via a post-processing effect, it would allow us to make our experiences more accessible to those affected by colorblindness.
How it could work
The post-processing effect in question could work on the basis of a ColorSequence, used for example in Beam effects:
Adjusting the color spectrum via a similar interface would be very easy for developers to work with.
Also, it could potentially allow players themselves to adjust the spectrum to their needs.