213 lines
4.7 KiB
Markdown
213 lines
4.7 KiB
Markdown
|
|
# Performance Targets - Dubai Metaverse
|
||
|
|
|
||
|
|
## Overview
|
||
|
|
|
||
|
|
This document defines performance targets and optimization goals for the Dubai Metaverse project.
|
||
|
|
|
||
|
|
## Frame Rate Targets
|
||
|
|
|
||
|
|
### Desktop (1440p)
|
||
|
|
|
||
|
|
- **Target**: 60-90 FPS
|
||
|
|
- **Minimum**: 60 FPS
|
||
|
|
- **Ideal**: 90 FPS
|
||
|
|
- **Hardware**: RTX 3070 / RX 6800 XT or better
|
||
|
|
|
||
|
|
### Desktop (4K)
|
||
|
|
|
||
|
|
- **Target**: 60 FPS
|
||
|
|
- **Minimum**: 60 FPS
|
||
|
|
- **Ideal**: 60+ FPS
|
||
|
|
- **Hardware**: RTX 4080 / RX 7900 XTX or better
|
||
|
|
|
||
|
|
### Cinematic Rendering
|
||
|
|
|
||
|
|
- **Target**: Offline rendering (no FPS target)
|
||
|
|
- **Output**: 8K EXR (7680x4320)
|
||
|
|
- **Method**: Movie Render Queue
|
||
|
|
- **Time**: Quality over speed
|
||
|
|
|
||
|
|
### VR (If Implemented)
|
||
|
|
|
||
|
|
- **Target**: 90 FPS
|
||
|
|
- **Minimum**: 90 FPS (required for VR)
|
||
|
|
- **Hardware**: RTX 4080 or better
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Memory Targets
|
||
|
|
|
||
|
|
### GPU Memory (VRAM)
|
||
|
|
|
||
|
|
- **Target**: <12GB usage
|
||
|
|
- **Maximum**: 16GB (for high-end GPUs)
|
||
|
|
- **Optimization**: Texture streaming, virtual textures
|
||
|
|
|
||
|
|
### System RAM
|
||
|
|
|
||
|
|
- **Target**: <16GB usage
|
||
|
|
- **Maximum**: 32GB (for development)
|
||
|
|
- **Optimization**: World Partition streaming
|
||
|
|
|
||
|
|
### Storage
|
||
|
|
|
||
|
|
- **Target**: <50GB packaged build
|
||
|
|
- **Optimization**: Asset compression, unused asset removal
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Performance Metrics
|
||
|
|
|
||
|
|
### Frame Time
|
||
|
|
|
||
|
|
- **Target**: <16.67ms (60 FPS)
|
||
|
|
- **Ideal**: <11.11ms (90 FPS)
|
||
|
|
- **Measurement**: Unreal Insights
|
||
|
|
|
||
|
|
### Draw Calls
|
||
|
|
|
||
|
|
- **Target**: <5000 draw calls per frame
|
||
|
|
- **Optimization**: Instancing, batching
|
||
|
|
|
||
|
|
### Triangle Count
|
||
|
|
|
||
|
|
- **Target**: <5M triangles per frame (with Nanite)
|
||
|
|
- **Optimization**: Nanite, LOD system
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Optimization Strategies
|
||
|
|
|
||
|
|
### Nanite
|
||
|
|
|
||
|
|
- **Usage**: All static meshes where possible
|
||
|
|
- **Benefit**: High-poly geometry without performance penalty
|
||
|
|
- **Target**: 100% of static meshes use Nanite
|
||
|
|
|
||
|
|
### LOD System
|
||
|
|
|
||
|
|
- **Usage**: Non-Nanite assets, background buildings
|
||
|
|
- **LODs**: LOD0-3 for primary, LOD0-2 for background
|
||
|
|
- **Target**: All non-Nanite assets have LODs
|
||
|
|
|
||
|
|
### World Partition
|
||
|
|
|
||
|
|
- **Usage**: Entire Dubai district
|
||
|
|
- **Cell Size**: 128m x 128m (default)
|
||
|
|
- **Streaming**: Optimized per cell
|
||
|
|
- **Target**: Smooth streaming, no hitches
|
||
|
|
|
||
|
|
### Material Optimization
|
||
|
|
|
||
|
|
- **Shared Materials**: Use material instances
|
||
|
|
- **Texture Streaming**: Enable texture streaming
|
||
|
|
- **Virtual Textures**: Use for large textures (optional)
|
||
|
|
- **Target**: Minimize material complexity
|
||
|
|
|
||
|
|
### Lighting Optimization
|
||
|
|
|
||
|
|
- **Lumen Quality**: Adjust based on performance
|
||
|
|
- **Shadow Quality**: Virtual Shadow Maps
|
||
|
|
- **Light Count**: Minimize dynamic lights
|
||
|
|
- **Target**: Maintain visual quality while optimizing
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Performance Testing
|
||
|
|
|
||
|
|
### Tools
|
||
|
|
|
||
|
|
- **Unreal Insights**: Profiling and analysis
|
||
|
|
- **GPU Profiler**: GPU performance analysis
|
||
|
|
- **Stat Commands**: Real-time performance stats
|
||
|
|
|
||
|
|
### Test Scenarios
|
||
|
|
|
||
|
|
1. **Empty Level**: Baseline performance
|
||
|
|
2. **Full District**: Complete district loaded
|
||
|
|
3. **Cinematic Camera**: Camera movement performance
|
||
|
|
4. **Vehicle Driving**: Vehicle physics performance
|
||
|
|
5. **NPC Crowd**: Multiple NPCs performance
|
||
|
|
|
||
|
|
### Test Hardware
|
||
|
|
|
||
|
|
- **Minimum Spec**: RTX 3060 / RX 6600 XT
|
||
|
|
- **Recommended Spec**: RTX 3070 / RX 6800 XT
|
||
|
|
- **High-End Spec**: RTX 4080 / RX 7900 XTX
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Performance Checklist
|
||
|
|
|
||
|
|
### Optimization Checklist
|
||
|
|
|
||
|
|
- [ ] All static meshes use Nanite (where applicable)
|
||
|
|
- [ ] LODs generated for non-Nanite assets
|
||
|
|
- [ ] World Partition streaming optimized
|
||
|
|
- [ ] Material complexity minimized
|
||
|
|
- [ ] Texture streaming enabled
|
||
|
|
- [ ] Draw calls optimized (<5000)
|
||
|
|
- [ ] Frame time meets targets (<16.67ms for 60 FPS)
|
||
|
|
- [ ] Memory usage within targets
|
||
|
|
- [ ] No performance hitches or stuttering
|
||
|
|
- [ ] Performance tested on target hardware
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Performance Targets by Phase
|
||
|
|
|
||
|
|
### Phase 2 (Environment Production)
|
||
|
|
|
||
|
|
- **Target**: 30+ FPS in editor
|
||
|
|
- **Focus**: Asset optimization, LOD generation
|
||
|
|
|
||
|
|
### Phase 3 (World Systems)
|
||
|
|
|
||
|
|
- **Target**: 45+ FPS in editor
|
||
|
|
- **Focus**: Lighting optimization, system integration
|
||
|
|
|
||
|
|
### Phase 4 (Gameplay + Interaction)
|
||
|
|
|
||
|
|
- **Target**: 60+ FPS in editor
|
||
|
|
- **Focus**: Final optimization pass
|
||
|
|
|
||
|
|
### Phase 5 (Final Polish)
|
||
|
|
|
||
|
|
- **Target**: 60-90 FPS in packaged build
|
||
|
|
- **Focus**: Final performance validation
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Performance Budget
|
||
|
|
|
||
|
|
### Per System
|
||
|
|
|
||
|
|
- **Rendering**: 60% of frame time
|
||
|
|
- **Lighting (Lumen)**: 20% of frame time
|
||
|
|
- **Physics**: 5% of frame time
|
||
|
|
- **AI/NPCs**: 5% of frame time
|
||
|
|
- **Other**: 10% of frame time
|
||
|
|
|
||
|
|
### Optimization Priority
|
||
|
|
|
||
|
|
1. **Rendering**: Highest priority (biggest impact)
|
||
|
|
2. **Lighting**: High priority (Lumen can be expensive)
|
||
|
|
3. **Physics**: Medium priority
|
||
|
|
4. **AI/NPCs**: Medium priority
|
||
|
|
5. **Other**: Low priority
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Notes
|
||
|
|
|
||
|
|
- Performance targets are guidelines, not strict requirements
|
||
|
|
- Visual quality should not be sacrificed unnecessarily
|
||
|
|
- Test on target hardware regularly
|
||
|
|
- Optimize incrementally throughout development
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
**Version**: 1.0
|
||
|
|
**Last Updated**: [Current Date]
|
||
|
|
|