Files
metaverseDubai/docs/TEXTURING_WORKFLOW.md

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

  1. Model Preparation: Prepare model with UVs
  2. Substance Painter: Create textures
  3. Export: Export texture sets
  4. Import to Unreal: Import and create materials
  5. 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

  1. Create Project:

    • Import low-poly mesh
    • Import high-poly mesh (for baking)
    • Set texture resolution (8K for hero, 4K for primary)
  2. 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

  1. Import Textures:

    • Drag textures to Content Browser
    • Or use Import button
  2. 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)

Material Creation

  1. Create Material:

    • Create new material asset
    • Name: M_AssetName_Type
  2. 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
  3. Material Settings:

    • Shading Model: Default Lit
    • Blend Mode: Opaque (or Translucent for glass)
    • Two-Sided: Enable for glass if needed
  4. Parameters:

    • Expose parameters for material instances
    • Color tint
    • Roughness multiplier
    • Metallic value

Material Instances

  1. Create Instance:

    • Right-click material > Create Material Instance
    • Name: MI_AssetName_Variant
  2. 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_1001
    • T_Hero_CayanTower_BaseColor_1002

Import UDIM Textures

  1. Import All Tiles: Import all UDIM tiles
  2. Create Material: Create material with UDIM support
  3. Texture Arrays: Use texture arrays or virtual textures
  4. 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

  1. Reference: Use real-world material references
  2. Consistency: Maintain consistency across assets
  3. Detail: Add appropriate detail level
  4. Optimization: Balance quality and performance

Material Creation

  1. Shared Materials: Use shared materials where possible
  2. Instances: Use material instances for variations
  3. Performance: Optimize shader complexity
  4. Documentation: Document material usage

Workflow

  1. Iterate: Iterate on textures based on feedback
  2. Test: Test materials in level regularly
  3. Validate: Validate quality and performance
  4. 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]