6.7 KiB
6.7 KiB
Texturing Workflow - Dubai Metaverse
Overview
This document describes the texturing workflow from Substance Painter to Unreal Engine for the Dubai Metaverse project.
Workflow Overview
- Model Preparation: Prepare model with UVs
- Substance Painter: Create textures
- Export: Export texture sets
- Import to Unreal: Import and create materials
- Assignment: Assign materials to meshes
Model Preparation
UV Mapping
- UDIM Workflow: Use UDIM for hero assets (8K textures)
- Standard UVs: Use standard UVs for primary/background assets
- UV Layout: Optimize UV layout for texture space
- Seams: Minimize visible seams
Export for Texturing
- Format: FBX or OBJ
- Include:
- High-poly mesh (for baking)
- Low-poly mesh (for texturing)
- UVs
- Material IDs (if using)
Substance Painter Workflow
Project Setup
-
Create Project:
- Import low-poly mesh
- Import high-poly mesh (for baking)
- Set texture resolution (8K for hero, 4K for primary)
-
Bake Maps:
- Normal map (from high-poly)
- Ambient Occlusion
- Curvature
- Position
- Thickness
Texture Creation
Base Color
- Purpose: Albedo/diffuse colors
- Content: Material colors, patterns, details
- Notes: No lighting information, pure color
Normal
- Purpose: Surface detail and geometry
- Content: Bumps, surface detail, geometry
- Source: Baked from high-poly or painted
- Notes: RGB format, tangent space
Roughness
- Purpose: Surface roughness (shininess)
- Content:
- Glass: 0.05-0.1 (very smooth)
- Metal: 0.1-0.3 (smooth)
- Concrete: 0.4-0.6 (rough)
- Notes: Critical for material realism
Metallic
- Purpose: Metallic vs. dielectric materials
- Content:
- Metal: 1.0 (white)
- Non-metal: 0.0 (black)
- Mixed: Grayscale values
- Notes: Binary or grayscale
Ambient Occlusion
- Purpose: Shadow and occlusion information
- Content: Baked AO or painted
- Notes: Enhances depth and realism
Additional Maps (if needed)
- Emissive: For neon lights, interior lighting
- Height: For parallax/displacement (optional)
- Opacity: For transparency (glass)
Export Settings
Resolution
- Hero Assets: 8K (8192x8192) per UDIM tile
- Primary Buildings: 4K (4096x4096)
- Background: 2K (2048x2048)
Format
- Export: PNG or TGA
- Bit Depth: 16-bit (recommended)
- Color Space: sRGB for base color, linear for others
Export Configuration
- Base Color: sRGB, 16-bit PNG
- Normal: Linear, 16-bit PNG
- Roughness: Linear, 16-bit PNG
- Metallic: Linear, 16-bit PNG
- AO: Linear, 16-bit PNG
- Emissive: sRGB, 16-bit PNG (if needed)
Import to Unreal Engine
Texture Import
-
Import Textures:
- Drag textures to Content Browser
- Or use Import button
-
Import Settings:
- Compression:
- Base Color: BC7 (DXT5)
- Normal: BC5
- Roughness/Metallic/AO: BC7
- sRGB:
- Base Color: Enabled
- Others: Disabled
- Mip Maps: Generate mip maps
- Virtual Texturing: Enable if using (optional)
- Compression:
Material Creation
-
Create Material:
- Create new material asset
- Name:
M_AssetName_Type
-
Texture Assignment:
- Base Color: Connect Base Color texture
- Normal: Connect Normal texture
- Roughness: Connect Roughness texture
- Metallic: Connect Metallic texture
- Ambient Occlusion: Connect AO texture
-
Material Settings:
- Shading Model: Default Lit
- Blend Mode: Opaque (or Translucent for glass)
- Two-Sided: Enable for glass if needed
-
Parameters:
- Expose parameters for material instances
- Color tint
- Roughness multiplier
- Metallic value
Material Instances
-
Create Instance:
- Right-click material > Create Material Instance
- Name:
MI_AssetName_Variant
-
Adjust Parameters:
- Color variations
- Roughness adjustments
- Other exposed parameters
UDIM Workflow (Hero Assets)
UDIM Overview
- UDIM: U-Dimension texture mapping
- Tiles: Multiple UV tiles (1001, 1002, 1003, etc.)
- Usage: Large assets requiring high-resolution textures
Texture Naming
- Format:
T_AssetName_MapType_UDIMNumber - Example:
T_Hero_CayanTower_BaseColor_1001T_Hero_CayanTower_BaseColor_1002
Import UDIM Textures
- Import All Tiles: Import all UDIM tiles
- Create Material: Create material with UDIM support
- Texture Arrays: Use texture arrays or virtual textures
- UV Mapping: Ensure UVs use UDIM coordinates
Quality Validation
Texture Quality
- Resolution meets requirements
- No compression artifacts
- Colors are accurate
- Normal maps are correct
- Roughness values are realistic
- Metallic values are correct
Material Quality
- Materials look realistic
- PBR workflow is correct
- Lighting responds correctly
- Performance is acceptable
Best Practices
Texture Creation
- Reference: Use real-world material references
- Consistency: Maintain consistency across assets
- Detail: Add appropriate detail level
- Optimization: Balance quality and performance
Material Creation
- Shared Materials: Use shared materials where possible
- Instances: Use material instances for variations
- Performance: Optimize shader complexity
- Documentation: Document material usage
Workflow
- Iterate: Iterate on textures based on feedback
- Test: Test materials in level regularly
- Validate: Validate quality and performance
- Document: Document texture and material specifications
Troubleshooting
Common Issues
Issue: Textures look washed out
- Solution: Check sRGB settings (base color should be sRGB)
Issue: Normal maps not working
- Solution: Check normal map format (BC5 compression)
- Solution: Verify normal map is tangent space
Issue: Materials too shiny/rough
- Solution: Adjust roughness values
- Solution: Check metallic values
Issue: Performance issues
- Solution: Reduce texture resolution
- Solution: Use texture streaming
- Solution: Optimize material complexity
Tools
Primary Tools
- Substance Painter: Primary texturing tool
- Substance Designer: Procedural materials (optional)
- Photoshop: Additional editing (optional)
Validation Tools
- Unreal Material Editor: Material validation
- Performance Profiler: Performance testing
- Texture Validation Script:
scripts/texture_validation.py
Version: 1.0 Last Updated: [Current Date]