Creating Tileable Textures and Texture Atlases for Games
Tileable materials and texture atlases directly impact game performance. We create seamless textures and optimize draw calls with over 8 years of experience, having completed more than 50 projects for PC, consoles, and mobile platforms. No Photoshop painting: we work in Substance Designer and Unreal Engine 5, using script-based texture packing via TexturePacker. The result is a reduction in draw calls by up to 70% compared to individual textures, saving thousands in rendering costs. Contact us for a free project estimate.
Why tileable textures deserve special attention?
A tileable texture is not just a seamless image. If it has a distinct repeating element, a tiling artifact appears that kills immersion. We solve it with three methods:
-
Stochastic tiling in the shader — multiple samples with UV variation and blending. In Unreal Engine 5, the node
World Aligned Blend; in Unity ShaderGraph, a custom HLSL block. Overhead is minimal, texture memory stays unchanged.
-
Multi-layer approach — an overlay texture with a different tiling scale is applied over the base. Different UV scales create an illusion of uniqueness.
-
Virtual Texturing — for huge terrains, each tile gets a set of details, but requires powerful GPU.
According to Unity documentation, proper atlas usage can reduce draw calls by 70% for static scenes. An atlas reduces draw calls by a factor of 3.3 compared to individual textures — a significant GPU resource saving. This makes texture atlases 3.3 times more efficient than using unique textures per object.
How a proper PBR texture is created?
For serious production, we use Substance Designer: a parametric graph where the texture is an algorithm. A typical tileable material graph includes:
- Shape generator — base form.
- Noise and Warp — edge variation.
- Height to Normal — conversion via Sobel filter.
- Level and Curve — calibration to PBR values.
The final set includes five maps: Albedo, Normal Map, Roughness, Metallic/AO, Height Map. Height Map is critical for Parallax Occlusion Mapping or Tessellation. Procedural textures in Substance Designer are 5 times faster to produce than hand-painted alternatives.
Texture Atlas: how to pack without quality loss?
An atlas reduces draw calls: instead of ten materials, one material with one texture. Keeping texel density consistent is crucial: a small prop on a 256x256 atlas on a 2048x2048 texture gets 8 times poorer resolution. Assets are distributed by area: hero props get more space, background props less.
Tools: TexturePacker, Unity Sprite Atlas for 2D, Unreal native Texture Atlas Generator. Rules: minimum 2–4 pixel padding, atlas dimensions are powers of two for correct mipmapping.
Typical mistakes and how we avoid them
- Normal Map with incorrect Tangent Space. Symptom: dark bands along seams. Solution: we explicitly specify Tangent Space on export (DirectX for Unreal, OpenGL for Unity).
- Albedo with baked lighting. Shadows or AO in a tileable texture are fatal. We export clean Albedo.
- Atlas without mip-map consideration. A 4096x4096 texture with hundreds of small sprites on mobile gives blurry patches. We check all mip levels.
Scope of work
Each project includes:
- Source .sbs graphs (on request)
- Ready map set (minimum 5) in required formats
- Optimally packed atlas
- Artifact check in the target environment
- Integration consultation
The following tables summarize typical timeframes and quality comparisons.
| Task scale |
Estimated timeframe |
| Single tileable texture (Substance Designer graph) |
2–4 days |
| Tileable texture set for a biome (5–10 materials) |
1.5–3 weeks |
| Texture atlas for a prop set (up to 30 objects) |
3–5 days |
| Texture atlas for a 2D project (UI + sprites) |
1–2 weeks |
| Criterion |
Manual painting in Photoshop |
Our approach (Substance Designer + optimization) |
| Repeatability |
Patterns often visible |
Stochastic tiling, multi-layer — pattern broken |
| Edit flexibility |
Redraw from scratch |
One parameter in the graph |
| Performance |
Draw calls not optimized |
Atlas + batching — draw call reduction up to 70% |
Our approach pays off through draw call reduction — you get up to 70% rendering savings, which can save approximately $5,000 per project. Pricing is determined individually after analyzing the requirements. We'll evaluate your project free of charge — get a consultation right now.
How we work?
- Analysis — we study the brief, platform, engine, and requirements.
- Design — we choose the pipeline.
- Implementation — we create graphs, render textures, pack the atlas.
- Testing — we check in the target environment for artifacts and FPS.
- Delivery — we provide source files and ready assets with instructions.
Timeframes: from 3 days for a simple tileable texture to 3 weeks for a biome set. Order development — write to us.
Why choose us?
- Over 5 years of experience in gamedev outsourcing.
- 50+ completed projects for PC, mobile, and consoles.
- Guarantee on all materials — free revisions if artifacts appear.
- Transparent process — you see the progress.
Texturing and Materials
An artist sends an asset to the engine — and it looks like a plastic toy. We've seen this dozens of times: correct geometry, good UV unwrapping, but the material doesn't "play". In 90% of cases, the reason is a misunderstanding of PBR channels. Over 10+ years working on mobile and PC projects, we've developed a pipeline that guarantees predictable results in any lighting. Texturing for modern games involves physically based materials, procedural systems, and a strict FPS budget. Our experience includes over 50 completed game projects — from indie to AAA. Contact us — let's discuss which texturing pipeline best suits your project with PBR materials for games.
Why are PBR materials the standard for modern games?
PBR (Physically Based Rendering) is not an artistic style but a set of rules that make materials behave physically predictably under any lighting. In Unity (URP/HDRP) and Unreal, this is the default standard. Using PBR reduces rework time by 30%: a material baked correctly does not require re-tuning when the environment changes. In contrast to legacy approaches, PBR provides consistency across the team — artists and engineers speak the same channel language.
What is included in the PBR pipeline: Metal/Roughness vs Specular/Glossiness
Two main workflows:
-
Metal/Roughness (used in Unity URP, Unreal): Base Color — diffuse color without lighting information. Metallic — binary map: 0 (dielectric) or 1 (metal). Roughness — 0 mirror surface, 1 matte. Normal Map — relief simulation. AO (Ambient Occlusion) — darkening in crevices.
- Specular/Glossiness — older workflow, used less often, mainly in legacy projects or when converting from Photoshop.
Boundary values for dielectrics: base color not darker than #383838 and not lighter than #E0E0E0 — otherwise the material starts to "glow" or "sink" into darkness under HDR lighting. For metals, base color = reflection color (gold — warm, chrome — neutral).
— from Unreal Engine documentation: "PBR is the only way to get predictable reflections on all platforms."
How does Substance Designer speed up the creation of tiling materials?
If Substance Painter is manual painting on finished geometry, Substance Designer is programming a material. The node graph outputs a set of texture maps that are generated algorithmically. Designer is 5 times faster than manual texturing when reused: one graph with parameters — stone size, gap, mossiness, wetness — gives hundreds of variations. Instead of painting a 2K texture by hand, the artist builds a graph that can:
- Be parameterized — one "stone wall" graph with sliders: stone size, gap, mossiness, wetness.
- Be scaled without quality loss — rendering at any resolution (2K → 4K for cinematic).
Building blocks of the Designer graph:
- Shape nodes — geometric primitives (rectangle, circle, polygon). Basis for tiling patterns.
- Noise nodes (Perlin, Gaussian, Cells, Voronoi) — organic irregularities.
- Tile Generator / Splatter — key nodes for creating patterns with control over offset, rotation, scale.
- Warp nodes — deformation by normal map or gradient (drips, shifts, cracks).
- Blend — layer blending with masking (final compositing).
- Normal Map nodes — synthesis of normals from height data.
Typical graph for "industrial metal" material:
[Shape: rectangular panel]
↓
[Tile Generator: grid of panels with small offset]
↓
[Warp: micro-dents from Gaussian noise]
↓
[Blend: add curvature mask → rust on edges]
↓
[Blend: drips by Directional Warp]
↓
[Export: BaseColor / Metallic / Roughness / Normal / AO]
Such a graph is reused across different projects without rework when resolution changes. One graph saves up to 40% of time on repetitive textures.
How to avoid performance loss when working with textures?
The main mistake is overestimated texture resolution and wrong compression format. Comparison table by platform:
| Platform |
Max texture for hero asset |
Compression format |
Size relative to PNG |
| Mobile (mid-range) |
1K–2K |
ETC2 / ASTC |
4–8 times smaller |
| PC / Console |
2K–4K |
BC1–BC7 |
4 times smaller |
| VR |
1K–2K |
ASTC (mandatory) |
4–8 times smaller |
Never export PNG to production without compression — it's a direct memory waste. BC7 for RGBA gives good quality at 8 bpp. ASTC for mobile is adjustable by quality/size ratio. Additional tool comparison table:
| Tool |
Speed |
Flexibility |
Reusability |
| Substance Designer |
3-5 days per tile |
Maximum (parameters) |
100% for different projects |
| Substance Painter |
2-3 days per hero asset |
Medium (manual touch-up) |
~70% via Smart Materials |
| Quixel Mixer |
1-2 days |
Limited by Megascans library |
Depends on project |
Work process: from reference to integration
- Analysis of references and reference geometry — determine PBR channels, style, platform constraints.
- UV unwrapping and baking — bake AO, Normal, Curvature, Thickness considering texel density.
- Texturing — Painter for hero, Designer for tiles, hand-painted if needed.
- Export and optimization — compress to target format, atlas, LOD textures, test on target platform.
- Support during integration — set up materials in engine, debug lighting issues.
Checklist of common mistakes
- Base Color contains fake shadows → breaks dynamic lighting.
- Normal Map in sRGB space → inverted normals.
- AO and Curvature not baked → Smart Materials work incorrectly.
- Texture resolution higher than necessary → FPS drop and extra VRAM.
- Compression format chosen without considering alpha channel (BC1 vs BC7).
What is included in our work and quality guarantees?
- Deliverables: PBR texture sets (Base Color, Metallic, Roughness, Normal, AO) for Metal/Roughness workflow, parametric Substance Designer graph (if required), full documentation for material setup in Unity/Unreal, support during integration with testing on target platform.
- Guarantee: every material is tested in the engine under three different lighting conditions. Our experience — 10+ years, 50+ projects, including projects with AR Foundation and XR Interaction Toolkit.
- Timeframe: 3 to 14 days depending on complexity (one tiling material in Designer — 3–5 days, hero asset with UDIM — up to 14 days). Cost is calculated individually.
Order texturing of your asset — we guarantee predictable results without rework. Get a consultation on the right pipeline today.