Most modern game engines support PBR (physically-based rendering) materials. These maps can be created using expensive and hard to learn software, or created from photographs. The good news is that there's an alternative! You can draw these textures by hand using free software and basic drawing skills.
To follow along with this guide, you'll need either bitmap or vector drawing software. If you want to stick to free software, I can recommend GIMP for bitmap drawing and Inkscape if you rather draw using vectors.
It’s always best to draw using vectors because they’re easier to edit and you can export your texture at any size. The disadvantage is that it’s harder to create organic materials like grass or high-detail textures. Try both and see which you like best.
Let's get started with the albedo map, which defines the color of your PBR map.
The albedo map defines the colors and pattern of a material and serves as the color input. If you were creating textures for a tank, this map would contain the camouflage pattern. Usually albedo maps have to be completely flat and can't contain any shadows or highlights (they get added by the game engine), but in some cases like stylized textures, they can be added for extra definition.
As an example, I've created the albedo map of a wall with a window, a control panel, and a metal vent. These aren't very exciting by themselves, but when we'll combine these with other maps, they'll gain artificial depth and reflective properties which make them look realistic in-engine.
Creating an albedo map is simple if you know how basic drawing tools work. Remember: Don't use any techniques to add shadows or highlights, that’s up to the game engine to add.
Depending on your engine, you can choose a displacement (or height) map, a normal map, or both. The difference between a displacement map and normal map is that displacement maps physically move the polygons of the model you apply the material to.
Not all game engines support displacement maps however. They can also be performance heavy and models often need to be tessellated (add more polygons) for better results.
When drawing a displacement map, everything that's black will have the most depth and white the least (or even extrude from the map). You can use any color in between and gradients allow you to create a wide range of effects.
See the image above for displacement maps based on our albedo maps. The glass part of the window has the most depth, while the frame around it is extruded from the texture (because it's light in color). There are also some bricks in the wall that protrude and fall back.
The control panel has a circle gradient on the TV screen which makes it extrude into a round shape. The lower left panel also has a gradient which means it'll look like it's extruded at an angle. The metal vent has the same effect as the control panel, which will add depth.
Normal maps are used for fine details on textures, like screws and scratches. The depth it adds is an illusion, which means the polygons of your models aren't modified and there's no actual depth. To achieve the best depth effects, you'll have to combine a normal map and displacement map, and change the polygons of your model.
Drawing a normal map by hand is extremely difficult and not really worth the time. There are online generators which create a normal map based on a displacement map.
Specular maps let the game engine know how shiny a surface is. The colors range between white (shiny) and black (matte). You can use a specular map to add details like borders and edges to materials.
In this case, the glass of the window is made shiny. For the control panel, each of the panel dividers has a white stroke around the edge to add detail. The vent has shiny screws and white lines to create sharp edges.
Emission maps allow you to specify which areas of your textures will be brighter than others. Using such a map, you can create effects like windows that light up, or bright light bulbs on a control panel. Especially when combined with a bloom effect, this can really enhance the atmosphere of a game.
To create an emission map you'll start by creating a new textures with a black background. Black means that there's no emission and white means there's maximum emission. You can draw any shape or color on the texture to specify what emits light.
In our case, it's only sensible for the control panel to have an emission map, as the others don't emit light by themselves. Simply copy shapes from the albedo or displacement map and color them using bright colors to make them emit light in your scene.
As a fun challenge, you can make an emission map for the wall with window texture so it lights up at night!
Here's the result of the PBR maps when combined. If your game engine supports it, you can add a bloom effect to make the emission map glow.
Getting the right results is a process of trial and error, so go ahead and experiment with the different maps and effects until you get the desired result. Every game engine is different and might handle PBR maps differently, so make sure to tweak settings and try different shaders for the best results.
Kenney Vleugels is an artist from the Netherlands who shares game assets (sprites, models, audio, fonts and more) with game developers. Recently, he founded Pixeland which is a physical community hub where every game developer in the world is welcome to learn, teach, meet, work, and play.