Creating Stylized Hand-Painted Textures for Game Graphics
Hand-painted textures break dynamic lighting if painted shadows are not accounted for. When you bake light into albedo, any engine Directional Light from a different angle results in double illumination: one side gets the painted highlight plus real light, the other gets double shadowing. This is a standard pain for studios transitioning from PBR to stylized graphics. The solution is minimal lighting (ambient-only) or disabling dynamic shadows on hand-painted assets. Over 10 years we have completed more than 50 projects for mobile, PC, and consoles: World of Warcraft, Hearthstone, Wildstar — all use stylized painting not as a simplification but as an artistic language. According to Substance Painter documentation, this workflow is best with manual lighting control.
How Hand-Painted Textures Affect Dynamic Lighting
In a PBR pipeline, albedo contains no lighting — the engine calculates it at runtime. In a hand-painted texture, lighting is part of the texture itself: highlights are painted where needed, shadows are baked into albedo, light rims are added manually. If you place a hand-painted asset under a dynamic Directional Light opposite to the painted lighting, the result looks strange. Therefore, stylized games use minimal lighting (ambient-only with a very weak Directional) or disable dynamic shadow casting on hand-painted assets. On mobile platforms, this yields a performance gain of up to 30% due to the absence of shadow calculations.
Why Hand-Painted Textures Require Special Mip-Map Handling
Hand-painted textures contain drawn thin lines — contour lines, edge highlights, thin shadows. When generating mip-map levels, these lines blur. At mip level 3–4, a contour 2px thick becomes a dirty gray smudge. The solution is either to draw thicker (minimum 4–6px for contours on a 1K texture), use Anisotropic Filtering x16 with a smaller mip bias, or store contours in a separate texture layer with independent filter settings. This problem does not occur in PBR, where normal maps carry fine details; in hand-painted everything is baked. Proper mip-map setup saves up to 2 days per character.
Texel Density and Its Importance for Hand-Painted
For hand-painted, texel density is more critical than for PBR: details are drawn manually and have a specific expected screen scale. If texel density does not match calculation, painted details are either too large (every brush stroke visible) or lost (blurry smudge instead of details). Standard: 512 px/m for hero assets, 256 px/m for background. Hand-painted textures are on average 2–3 times lighter in weight than a full PBR set, providing a performance gain of up to 30% on mobile platforms. When ordering a batch of 10 textures, you save up to 40% of the budget due to UV packing and palette reuse. For example, a typical character set costs $1,500–$3,000, which is 40% less than an equivalent PBR set.
Tools and Techniques
Hand-painted textures are drawn either entirely in 2D or directly on the mesh in 3D space.
- 3D painting via Substance Painter — convenient because it allows painting directly on the mesh with UV layout visible, without worrying about seams. Painting mode with PBR preview disabled and manual Diffuse control is a working approach for hand-painted workflow. Layers are used as in Photoshop: base color → shadows → highlights → additional details → final AO.
- Photoshop with UV-mesh overlay — classic approach. UV layout is exported as PNG and used as a guide. The artist paints over it, seeing where seams are. Requires experience: you need to mentally visualize how 2D pixels will look on a 3D surface.
- 3D Coat — specialized tool for texture painting with good support for stencil brushes and layers.
One key technique in hand-painted style is cell shading via contour lines in the texture. This is not a contour shader in the engine — it is painted lines directly in albedo along form edges. Advantage: works without a special shader, reads well even in poor lighting, independent of silhouette (contour visible on internal edges). Disadvantage: when geometry changes, contours must be redrawn manually.
What Is Included in Hand-Painted Texture Creation
- Analysis of references and art style: determine palette, line thickness, contrast level.
- UV unwrapping: seam layout considering future hand painting.
- Hand-drawn albedo: shadows, highlights, contours — all done manually in layers.
- Mip-map optimization: adjust line thickness, configure Anisotropic Filtering.
- Final engine check: test under different lighting and mip levels.
- Deliver source files: PSD or .spp with layers preserved.
Deliverables
Each order includes:
- Source files (PSD or .spp) with all layers intact.
- Final textures in required format (DDS, PNG, TGA) with proper mip-maps.
- Engine test report showing results under standard lighting.
- Documentation on texture usage and style guide.
- One round of revisions for consistency.
- Support during integration.
How We Work: Stack and Process
We use a unified pipeline for all projects.
- Analysis. Study references, determine expected texel density and contrast.
- UV design. Unwrap seams to minimize visible breaks on painted lines.
- Painting in 3D-painter or Photoshop. Paint layers: base color → shadows → highlights → details → AO.
- Optimization. Check mip-maps in engine, adjust line thickness, configure filtering.
- Deployment. Deliver source files and final textures in required formats.
Hand-painted textures are on average 2–3 times lighter in weight than a full PBR set due to the absence of separate normal and roughness maps. This yields a performance gain on mobile platforms.
Typical Mistakes in Hand-Painted Textures
- Too soft lighting. Contrast should be higher than reality. Paint with a margin.
- Wrong lighting angle. The conditional light source in albedo must be consistent for all assets in the scene.
- Lack of micro-detail. Even in a simple style, a layer of fine details is needed — small tone variations, thin lines, pinpoint highlights.
| Task Scale | Estimated Time |
|---|---|
| One prop (one 1K texture) | 2–4 days |
| Character (body + clothes, 3–5 textures) | 8–15 days |
| Environment asset set for a location (10–20 objects) | 2–4 weeks |
| Style revision + repaint of existing assets | by agreement |
| Additional Services | What's Included |
|---|---|
| Platform-specific texture optimization | Mip-map setup, ASTC/ETC compression, performance test |
| Creating PBR version from hand-painted | Convert albedo to diffuse, generate normal and roughness |
| Training your artist | Workshop on hand-painted techniques, pipeline review |
In our practice, we faced a task: for a mobile RPG in hand-painted style, NPCs required a 512x512 albedo limit. At that resolution, photorealistic details are lost. Instead, we used an approach: three tonal levels (shadow, halftone, light) + painted 2px contour + a few characteristic details (button, pattern, fold). In the render, it looked convincing at a camera distance of one and a half meters from the character — exactly the camera offset used in the game.
Contact us to discuss your project. We will help define the style and estimate timelines. Order stylized textures — get a consultation on your art style. You can also order a trial draw of one asset to evaluate quality and speed. Prices start from $500 for a simple prop texture, with typical character sets ranging $1,500–$3,000. Compared to full PBR, hand-painted reduces memory usage by 60% and improves frame rate by up to 30%.





