Skip to content
ReadySpawn

How to make textures for games: pixel art, PBR and hand-painted

By Imersa Studios · Updated

Choose the style first. Pixel textures are small images drawn by hand and shown without filtering. PBR textures are a set of maps (base colour, normal, roughness) made in a painting tool. Hand-painted textures are painted colour on a simple map. Keep one texel density across the whole scene.

1. Pick a style

StyleLooks likeTextures per objectFree tools
PixelRetro, PSX, crisp pixelsOne tiny colour mapLibreSprite, Krita, GIMP
PBRRealistic materials under lightBase colour, normal, roughness, moreBlender, Material Maker, Krita
Hand-paintedStylised, painterlyOne colour map, sometimes a gradientBlender, Krita

Mixing styles in one scene is the quickest way to make assets look like they come from different games. Choose one and keep it.

2. Pixel textures for PSX and retro games

  • Use small sizes: 32, 64 or 128 pixels per side.
  • Limit colours with a palette. The PSX palette generator builds hue-shifted ramps snapped to 15-bit colour.
  • Turn off filtering and mipmaps in the engine so pixels stay hard (Point in Unity, Nearest in Godot, 2D Pixels in Unreal).
  • Draw tileable textures by offsetting the image by half and fixing the seams.

Readable Pixels goes deeper on outlines, shading and palettes. For a PSX 3D look, Low Poly Dread has the shader side.

3. PBR and hand-painted basics

PBR (physically based rendering) describes a surface with several maps. The common set is base colour, normal (fine bumps), roughness (how shiny) and metallic. You can paint them in Blender's texture paint mode, or generate materials in a free tool such as Material Maker. Free CC0 libraries such as Poly Haven and ambientCG offer ready-made materials; always read the licence on each page.

Hand-painted style uses one colour map with painted light and shadow, often on low poly models. It keeps the look soft and consistent and needs no normal or roughness maps.

4. Keep texel density consistent

Texel density is how many texture pixels cover a metre of model. If a crate has twice the density of a wall, the wall looks blurry next to it. Pick a target, check it, and match it across assets.

The texel density calculator turns texture size, object size and UV coverage into pixels per metre, and tells you what size a new texture should be.

5. Export and import settings

  • Use powers of two (64, 128, 256, 512) so engines can compress and mip them cleanly.
  • Save as PNG for lossless colour. Keep a layered source file.
  • Check colour space: colour maps are sRGB, data maps such as normal and roughness are linear.
  • Name textures after the object so teammates find them.

Our PSX packs use pixel-art textures meant for nearest-neighbour filtering, which is a good reference for scale and palette.

Questions

Who wrote this

Imersa Studios builds the Unity systems, low poly packs and field guides sold on itch.io. The code and techniques here come from shipping those products. More about the studio.