
Check out the latest model drops and powerful integrations.
I spent some time learning about NPC generation and I'm sharing my research in hope that it will be helpful for someone else!
NPC texturing has always been a balancing act between visual fidelity and production constraints. You want characters that look good up close, but you also need to ship dozens or hundreds of them without burning through your art budget. Traditional approaches solve this through tiered investment and procedural assistance; emerging AI tools are starting to change what's possible at each tier.
This post covers both sides: how NPC texturing has traditionally worked, and what AI is actually enabling now.
Physically Based Rendering workflows are standard for realistic games. You create multiple texture maps that work together to describe how a surface should respond to light:
These maps feed into the engine's PBR shader, which handles lighting consistently across different conditions. The same character looks correct whether they're standing in bright sunlight or a dim interior, because the shader computes the light interaction rather than having it baked into the texture.
The approach produces convincing materials but requires significant work per character. Normal maps in particular are time-intensive because they need to capture the high-frequency detail that sells a surface as real: skin pores, fabric weave, leather grain. Roughness maps require similar attention because even subtle variation (slightly shinier on the nose, slightly rougher on weathered leather) separates good materials from flat ones.
For stylized games, artists paint color, detail, and shading directly onto UV-unwrapped models using tools like Substance Painter or Photoshop. This gives maximum artistic control and lets you bake lighting information directly into the texture for a specific look, which is why it remains common for games with strong art direction like World of Warcraft or Fortnite.
Hand-painted texturing works because it's not trying to simulate reality; it's trying to read well at game camera distances and match a specific aesthetic. Artists can exaggerate edge definition, push color contrast, and add painted shadows that would be physically impossible but look right for the style.
The tradeoff is that procedural approaches still don't match manual work for stylized aesthetics. When you need a texture to tell a story (worn edges on armor that imply years of use, or dirt patterns that suggest where a character has been), human judgment about what details matter is hard to replicate algorithmically.
Procedural texturing uses mathematical functions (noise, patterns, and gradients) to generate textures algorithmically. Substance Designer is the primary tool here, letting you create node-based texture graphs where you wire together generators, filters, and blending operations to produce a final result.
This approach works especially well for organic detail and material variation. You build a graph that generates convincing skin once, then expose parameters for age, weathering, and skin tone that let you generate dozens of variations without repainting. The same principle applies to fabric, leather, metal, and any other material where the underlying structure is consistent but the specific instance should vary.
Studios use procedural texturing heavily for background NPCs, creating base material systems that apply across multiple character templates with parameter-driven variation. A crowd scene might have fifty characters, each with slightly different skin roughness, clothing wear, and dirt accumulation, all generated from the same underlying graphs with randomized parameters.
The limitation is that procedural systems produce what they're designed to produce. They're excellent for "more of the same with variation" but less useful when you need specific intentional details that serve narrative or gameplay purposes.
Textures can quickly become your biggest GPU memory drain, so optimization is always a factor in how you approach NPC texturing. Common techniques include texture compression (DXT, ETC, and ASTC) to reduce memory footprint at the cost of some quality loss, texture atlasing to combine multiple textures into single atlases and reduce draw calls, mipmapping for pre-computed lower-resolution versions that display when objects are distant, and resolution budgeting where hero characters get 4K textures while background NPCs get 512x512 or even 256x256.
The art is always balancing visual fidelity against memory and performance budgets. A character that looks stunning in the asset viewer might be unshippable if they consume 200MB of texture memory when you need to have twenty NPCs on screen simultaneously. This constraint shapes every decision in the texturing pipeline, from initial resolution choices through final compression settings.
AI texture tools are now mature enough to integrate into real production pipelines, though they're better suited for some tasks than others.
Tools like Adobe Firefly and NVIDIA Canvas generate PBR-ready material maps from text prompts. You describe what you want ("weathered bronze with green patina," "rough wool fabric in dark grey") and the tool generates albedo, normal, roughness, and height maps that tile correctly.
The workflow shift is significant for material creation. Instead of painting a rust texture from scratch or hunting through texture libraries hoping someone made what you need, you describe what you want and iterate on the results. The AI handles the tedious work of making tileable textures with proper normal and roughness maps, which historically consumed substantial artist time.
The limitation is creative control. Text prompts give you broad direction but not precise control over specific details. If you need the rust concentrated in a particular pattern, or the fabric weave to align with UV seams in a specific way, you're back to manual work or at least manual refinement of AI-generated bases.
Platforms like Meshy AI and Polycam generate textures from reference images or 3D scans. You capture a real-world material (a specific leather, a particular concrete surface, a fabric sample) and the tool extracts a tileable texture with PBR maps.
This is particularly useful for grounding stylized work in real reference. You might not want photorealistic leather in your game, but starting from a real leather texture and stylizing it gives you physical accuracy to push against. It's also useful for environment art where you need dozens of material variations that all feel like they belong to the same world.
NVIDIA's RTX Texture Filtering SDK and AI upscaling technologies (DLSS and FSR) infer high-frequency texture details lost in low-resolution source textures. This means you can ship smaller texture files and let the GPU reconstruct detail at runtime, which has meaningful implications for NPC texturing.
The practical application is shipping lower-resolution textures for background NPCs and letting AI upscaling make them look acceptable at closer viewing distances. A 256x256 texture that would look blurry on a close-up NPC can be upscaled to look like a 1024x1024 texture with plausible detail filled in. This doesn't match authored high-resolution textures, but it's often good enough for characters that only occasionally get close to camera.
NVIDIA's DiffusionRenderer, unveiled at CVPR 2025, unifies inverse and forward rendering in a single neural framework. It can extract material properties from video footage, then re-render with modified lighting. For texture artists, this means capturing real-world materials by filming them under varying lighting conditions and letting the model decompose what it sees into PBR-compatible maps.
This is still emerging technology rather than production-standard tooling, but it points toward a workflow where you could film a costume, a prop, or an interesting surface you encounter and extract game-ready materials from the footage. The current limitation is that the extracted materials need refinement to tile properly and match your game's specific PBR implementation.
If you're evaluating where AI texture tools fit in your pipeline, the current state breaks down roughly as follows:
Usable now for production: Text-to-texture generation for material libraries and base textures, image-to-texture for capturing reference materials, AI upscaling for optimizing texture memory budgets on lower-priority assets.
Useful for prototyping but needs manual refinement: AI-generated textures for hero characters or any asset where specific intentional detail matters. The tools get you to a starting point faster, but you'll spend time in Substance Painter or Photoshop refining the results.
Worth tracking but not production-ready: Neural material capture from video, fully automated texture generation for stylized aesthetics, AI systems that understand narrative context (which edges should be worn, which areas should be dirty based on character backstory).
The tools are good enough now that ignoring them means leaving efficiency gains on the table, but they're not good enough to replace artists who understand what textures need to communicate and how to get there.
Sources: NVIDIA DiffusionRenderer, Game Developer: Procedural Texturing, Meshy AI, RMCAD: Game Art Texturing