Pseudo pixel art & texture palette shader

Disclaimer: This is a work in progress and, I’m always learning and trying to improve. UI aesthetics and other elements don’t reflect the final product. 🙂


Get this game out!

Reducing the scope by simplifying the pipeline of some assets, like foliage.

Ready to be used with Unreal Foliage Tool, vertex paint support.

Pseudo pixel art

Let’s use this pine tree as an example. An overview of the trees, reference/base on the left side and pixel version on the right side.

from Oddish to Bellossom

<- This is Oddish, a 3d plane with 220 horizontal and vertical segments/divisions.

Set as material the reference/base of the tree you want to create. If need, fix the image offset and tiling inside the material, so the ref image will have the correct aspect ratio.

On polygon selection (face), use the selection region tool (rectangular and spray) to delete the parts you don’t want, at this stage, we only want the crisp and sharp silhouette without using an alpha map…

Talking about alpha map…

Silhouette complete, time to add more variation to the tree.

Different ways to do that, in this example, I used material IDs, you could also try vertex color, extras UVs, UDIM workflow…

Select some parts of the mesh and set the material ID to 2. When you apply a multi/sub-object material, those selected faces with ID=2 in the mesh will be painted with the respective material ID color.

Reducing tris & verts counter

Use some polygon reducing modifier/plugin, remember to set to “keep material boundaries”.

Unwrapping UVs

Most of the trees used in this project is using “RGB mask” texture, like this one:

In the UE4, the shader is set to apply different colors for each of those channels (Red and Green), Using the small red side for bark, branch and the big green for leaves, like the one below from the dead tree.

ps: texture density is not a concern here.

Maybe sound like a lot, but in around 30 minutes the asset can be exported to the engine, maybe even less. The most time consuming would be the polygon painting of the other material ID.

Jumping into Unreal

In this part, I gonna just focus on the palette portion of the shader.

First wanna say thanks to all the amazing people sharing all those cool palettes at

In the example above I used gb-chocolate a 2 bits color palette created by GrafxKid. In the number of bands, the user set the number of color/tone a palette has, in this case, 4, but add +1 cause I dunno how to do math ^^ . If the palette has 16, 17 will be the “Number of bands”.

Color Band Depth M1 = the color you wanna use on material 1.

Color Band Depth M2 = the color you wanna use on material 2.

You can also change Color Mask Texture for each material, under the hood the shader will use the Color Mask Texture (grayscale image) and blend that with the Color Band Depth of that material.

Also, some options to tweak the main color of each material, Color Mask Texture strength and tiling and other minor kinds of stuff.