Files
metaverseDubai/docs/WATER_SYSTEM.md

291 lines
5.7 KiB
Markdown

# Water System - Dubai Metaverse
## Overview
This document describes the Marina water system implementation for the Dubai Metaverse project.
## Marina Water Requirements
### Visual Requirements
- **Realistic Water**: Photorealistic water appearance
- **Reflections**: Strong reflections of buildings and sky
- **Caustics**: Light refraction (caustics) on surfaces
- **Waves**: Animated wave surface
- **Foam**: Foam at edges and around objects
### Technical Requirements
- **Performance**: Maintain 60-90 FPS
- **Quality**: High visual quality
- **Scale**: Large water area (Marina channel)
---
## Water Material
### M_Water_Marina
**Primary water material for Marina**
### Material Properties
#### Base Properties
- **Blend Mode**: Translucent
- **Shading Model**: Default Lit
- **Two-Sided**: Enabled
#### Reflection
- **Reflectivity**: High (0.8-0.95)
- **Reflection Method**: Lumen Reflections
- **Reflection Quality**: High
#### Surface Properties
- **Roughness**: Low (0.05-0.1) for smooth surface
- **Metallic**: Low (0.0-0.1)
- **Color**: Slight blue/green tint
#### Animation
- **Wave Animation**: Animated normal map
- **Wave Speed**: Configurable
- **Wave Intensity**: Configurable
- **Wave Direction**: Configurable
### Texture Requirements
#### Base Color
- **Resolution**: 4K
- **Content**: Water color, depth variation
- **Tint**: Blue/green
#### Normal Map
- **Resolution**: 4K
- **Content**: Wave patterns, surface detail
- **Animation**: Animated for wave movement
#### Roughness
- **Resolution**: 4K
- **Content**: Surface roughness (low for smooth water)
#### Additional Maps
- **Caustics**: Caustics texture (optional)
- **Foam Mask**: Foam areas (optional)
---
## Water Shader Implementation
### Wave Animation
1. **Normal Map Animation**:
- Use panner node to animate normal map
- Combine multiple wave layers
- Adjust speed and intensity
2. **Vertex Animation** (optional):
- Animate vertex positions
- Use world position offset
- Adjust wave height
### Reflections
1. **Lumen Reflections**:
- Enable Lumen Reflections
- High reflection quality
- Verify reflections are accurate
2. **Planar Reflections** (optional):
- Use planar reflection actor
- For specific reflection needs
- Performance consideration
### Caustics
1. **Caustics Texture**:
- Create or use caustics texture
- Project onto surfaces below water
- Animate for movement
2. **Implementation**:
- Use material function
- Project onto geometry
- Adjust intensity
---
## Water System Blueprint
### BP_WaterSystem
**Purpose**: Control water system behavior**
### Components
1. **Water Mesh**:
- Large plane or custom mesh
- Covers Marina area
- Assigned water material
2. **Water Controller**:
- Controls wave animation
- Controls water level
- Controls water effects
3. **Foam System**:
- Foam at edges
- Foam around objects
- Foam material
### Settings
- **Wave Speed**: Animation speed
- **Wave Intensity**: Wave strength
- **Water Level**: Water height
- **Foam Intensity**: Foam amount
---
## Foam System
### M_Water_Foam
**Foam material for water edges**
### Properties
- **Blend Mode**: Translucent or Additive
- **Color**: White/light blue
- **Opacity**: Variable
- **Emissive**: Slight emissive
### Implementation
1. **Foam Mask**:
- Create foam mask texture
- Or use distance-based mask
- Define foam areas
2. **Foam Placement**:
- Place at water edges
- Place around objects
- Use decals or separate mesh
---
## Performance Optimization
### Water Optimization
1. **Material Complexity**:
- Optimize shader instructions
- Use efficient nodes
- Minimize texture sampling
2. **Mesh Optimization**:
- Use efficient mesh
- Optimize vertex count
- Use LODs if needed
3. **Reflection Optimization**:
- Optimize Lumen Reflections
- Limit reflection distance
- Use lower quality if needed
### Streaming
- **World Partition**: Use World Partition for large water areas
- **Distance Culling**: Cull water outside view
- **LODs**: Use LODs for distant water
---
## Integration
### With Lighting
- **Reflections**: Water reflects sky and buildings
- **Caustics**: Caustics on surfaces below
- **Time of Day**: Water appearance changes with time
### With Buildings
- **Reflections**: Buildings reflect in water
- **Interaction**: Water interacts with building bases
- **Foam**: Foam around building foundations
### With Vehicles
- **Wake Effects**: Vehicle wake (optional)
- **Splashes**: Water splashes (optional)
---
## Testing
### Visual Testing
1. **Reflections**: Verify reflections are accurate
2. **Waves**: Verify wave animation is smooth
3. **Caustics**: Verify caustics are visible
4. **Foam**: Verify foam placement is correct
### Performance Testing
1. **Frame Rate**: Test frame rate with water
2. **Memory**: Test memory usage
3. **Optimization**: Test optimization settings
---
## Troubleshooting
### Common Issues
**Issue**: Water not reflecting
- **Solution**: Check Lumen Reflections enabled
- **Solution**: Verify reflection quality settings
**Issue**: Waves not animating
- **Solution**: Check material animation nodes
- **Solution**: Verify time-based nodes
**Issue**: Performance issues
- **Solution**: Optimize material complexity
- **Solution**: Reduce reflection quality
- **Solution**: Use LODs
**Issue**: Water too transparent/opaque
- **Solution**: Adjust opacity settings
- **Solution**: Adjust color and tint
---
## Reference
### Dubai Marina Water
- **Color**: Clear blue/green
- **Reflections**: Strong reflections
- **Waves**: Gentle waves
- **Clarity**: Clear, visible depth
### Material References
- Study real water materials
- Reference Dubai Marina photos
- Match visual appearance
---
**Version**: 1.0
**Last Updated**: [Current Date]