291 lines
5.7 KiB
Markdown
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]
|
|
|