Asset Pipeline
Control shaded color with masking
Context:
We are going for mid-poly, NPR, cartoonish cel-shading effect.
Decision:
- Compared to normal asset pipeline, when texturing, instead of creating texture maps, we ask our artists to only create RGB Channel Masks for different areas.
Each channel marks up the areas with the same material properties (in most cases, base color/albedo).
If more than 3 areas are needed, we create a second RGB Channel Mask, and more if needed.
- After the masks are imported to the engine, we then assign the desired color for each RGB channel.
And in the cel shader, it goes through all channel used and applies the color we choose.
Rationale:
There are two reasons behind this decision:
1. Using RGB Channel masks, we can create many variants of one asset with no time.
This is especially useful for 2-player game, where both players need the same asset with slight difference (I.E. Their laser tools).
2. To create an unique cel-shading effect, we want to directly control the shaded color on our assets.
Using the masks, we can directly assign the final rendered color in Engine.
a) It makes it much easier for cel shader to find the right area and apply the desired color.
b) It also saves so much time for artists to iterat colors of assets - instead of changing the colors in texture map and reimport it, now they only need to select a new color value.