Palette/Gradient Texturing
This doc goes over using a Palette Texturing approach to create your custom Avatar for Roblox.
Palette and Gradient Texturing is a very performant approach to texturing with a more limited result. It can be done relatively quickly, and usually suits the style of Roblox quite well!
You can use a single diffuse texture but you could also combine this with a Roughness and Metallic Texture in order to get different finishes on the final material. This approach uses these textures to create Physics Based Rendering (PBR) results.
Palette texturing
Palette texturing takes a very small texture of a few colors and uses them to texture entire assets. This is extremely good for performance and file size, but is limited to simple textures and materials.
It is possible to have a texture as small as 16x16 pixels, making a total of 181 bytes, for example.




The UVs of the model are placed into a very small area of the texture, potentially a single pixel of color as shown with the orange dots in the UV examples above. The other benefit to this approach is its very easy, and very fast.
It is possible to use the Roughness and Metallic textures to add different finishes to the material. The top example above uses just the diffuse, where the second image uses Diffuse and Roughness. You can see the result in the reflection in the Eyes (if you look close enough!).
Metallic was not needed for a base character but it could be possible to use this in other assets.
Gradient Texturing


An extension of Palette Texturing is creating a texture that has a range of gradients. Instead of placing the UVs into a single pixel or small single color area, the UVs are flattened horizontally or vertically and applied to the gradient.
This approach is also easy and quite fast, and with slightly more variation in the result. You could change areas of this into PBR results much like the Palette Texturing, but the better approach is to duplicate the Gradients for more variation.
This one material could be used to texture an entire game for example. This one character uses very little of the texture, but I could use this same texture for the environment, weapons, etc. and for a game engine that is more optimised using less materials such as Unity this is a huge optimisation approach.
Due to how Roblox implements materials having a texture with all the gradients isn't as optimised as it would be in a game engine that supports using the same material for many assets like Unity or Unreal. So the best way to utilise Gradients in ROblox would be to only use the gradients you need for the asset you are creating. In the case above I would use the following gradients :
Transparent for skin
Red for mouth
Blue for eyes
Light blue for clothes
White for teeth
The end result could be a blend of palette and gradient texturing.
Gradient texturing with Physics Based Rendering (PBR)




Physics Based Rendering, or PBR, is a common materials approach in games now that allows for more realistic effects such as adding metallic, polished, or matte material types. The Metallic and Roughness textures are added with variations on material finish.
This is a great approach for performance and offers a good range of material results.
Once again this would work better in an engine like Unity or Unreal that allows many assets to utilise the same material unlike Roblox. That said, as the texture is quite small it probably wouldn't matter too much if you used this approach in Roblox.
Using Palette / Gradient Texturing
If using palette or Gradient texturing, the first thing you need to decide is what kind of texture you are wanting to use.
Single colors VS gradients.
Single finish VS Multiple finishes.
The color texture, also known as Diffuse or Albedo, is made up of the colors or gradients you would like to use. The Diffuse texture could be extremely small if you have a limited amount of colors you want to use. A 16x16 pixel texture is enough to make a 16 color asset. But it's common to use more like a complete palette texture and then you can add all the colors for all the assets.
The metallic and roughness of the material are set as separate textures as well.
Metallic is a greyscale texture ranging from black (not metallic) to white (metallic) and everything in between.
Roughness is a greyscale texture ranging from black (polished) to white (matte) and everything in between.
Creating the texture
Create a texture in your texture Creation tool as needed. Options include :
A tiny texture using only the colors you need.
A medium texture with many colors, but only one finish (shiny or matte for example).
A large texture with all the colors with multiple finishes (shiny and matte for example).
In this doc we looked at using the Palette and Gradient Texturing techniques to apply color and finish to your assets. With that done we can start looking at adding a skeleton to your character to help it move.
Last updated