Crest Water 4 HDRP (Ocean, Rivers & Lakes)
Documentation • Email • GitHub • Discord • Twitter • YouTube
Crest is a trusted water solution by many studios for its quality and performance. It has been implemented in several successful games & simulators and the subject of SIGGRAPH talks.
Crest 5 is now available. Crest 4 will still continue to be supported with bug fixes and minor improvements.
Workflow
- Add water in minutes with three components (water surface, underwater and waves)
- Sane and balanced defaults
- Several example scenes covering many use cases
- Detailed help boxes display validation errors direct in the inspector with fix buttons to guide setup
- Online documentation with embedded videos
Features
- Unity 6 ready
- State-of-the-art LOD system achieving class-leading performance
- Innovative "equalizer" style wave authoring. Both FFT and Gerstner waves supported
- Input system for modifying ocean data (like foam) using mesh, trail, line and particle renderers
- Innovative "wave spline" technology to give detailed control over water simulation including rivers, lakes and shorelines
- Simulated light transport including reflection, refraction, scattering, caustics approximation and shadowing
- Underwater effect with partial submersion and meniscus
- Query water displacement using GPU or CPU
- Unity Server support suitable for authoritative servers (like MMOs)
- Shifting Origin component provided for large/open worlds
- Dynamic wave simulation ("ripple simulation") for dynamic object-water interaction including boat wakes
- Shallow water - light scattering and wave attenuation
- Foam simulated from waves and shorelines
- Apply colour onto ocean surface similar to decals
- Water volumes which can restrict rendering of both surface and underwater to a given geometry (eg sphere of water)
- Flow to enable horizontal motion of water surface
- Physics interface with buoyancy implementations and support for Dynamic Water Physics 2
- Flexible time synchronisation to support networking and cutscene Timelines
- Surface clipping to carve hulls/caves out of water surface
- Planar reflections
- Deferred, Forward, Perspective, Orthographic and Stereo (VR/XR) rendering supported
- Shader Graph nodes for applying underwater to transparent objects
- Ocean Shader Graph (2021.3+ only)
- Ray-Traced Reflections support (2021.3+ only)
- Screen-Space Reflections and Planar Reflection Probes supported
- Decals supported
- Gaia Pro VS integration
- Much more…
To see some of these features in action, videos can be found on our YouTube channel. Furthermore, we have a Frequently Ask Questions section in our documentation.
Crest does not support OpenGL or WebGL and requires shader compilation target 4.5 or above. Crest 4 currently does not support WebGPU.
Asset Compatibility
We avoid non-standard techniques and are not aware of any major incompatibilities. Our users also use Dynamic Water Physics 2 (DWP2), Enviro, Cozy Weather, Buto, Expanse, Gaia, MicroSplat, MicroVerse, Nature Manufacture, Azure[Sky], Skybox Creator, Vegetation Studio, and many more…
Please see our integrations page.
Example Scenes
This asset comes with a few example scenes, including the "Submarine" demo scene shown above. This scene was created by the Digital Wizards team (Aldana Zanetta and Fernando Zanetta).
Release Notes
Fixed
- Fix shader compilation errors with generated/exported HLSL ocean shader with DXR
4.22.4
Changed
- Expose Sea Floor Depth input Relative property in the inspector
- Improve platform compatibility by adding more checks to RT formats
- No longer log RT format changes (use CREST_DEBUG_LOG_FORMAT_CHANGES if needed)
Fixed
- Fix Unity 6.4 compilation errors and warnings
- Fix TimeProviderCutscene broken in builds
- Fix water potentially breaking in builds due to RT format
- Fix Examples navigation when only new input system is active
- Fix input module for old input system spamming errors when only new input system is active in Examples scene
Documentation
- Add section dedicated to the Water Body script
4.22.3
Fixed
- Fix underwater alpha channel handling causing problems with certain post-processing settings
- Fix “VolumeManager” InvalidOperationException
- Fix exceptions and broken rendering when using Portal mode
4.22.2
Changed
- Add Follow Horizontal Motion option to Albedo inputs
- Add Repair Shaders button to OceanRenderer
- Warn if primary light is not directional
Fixed
- Fix underwater shader variants potentially being incorrect in builds by making stripping deterministic
- Fix dynamic waves not scaling correctly across LODs
- Fix potential null exceptions
Performance
- Reduce underwater shader variants
- Strip underwater debug variants in builds
4.22.1
Changed
- Add game/scene to planar reflection camera name to better distinguish them
Fixed
- Fix script compilation error when Gaia is installed on Unity 6+
- Fix CS0414 script warning on build
- Fix planar reflection “release target texture” exception
- Fix planar reflection capturing inverted geometry in edit mode
- Fix both scene and game view planar reflection camera executing, when only one should
- Fix several cases of “Screen position out of view frustum” when using planar reflections
- Fix underwater not working in play mode when domain reload is enabled when entering play mode
4.22
Changed
- Add Gaia Pro VS integration
- Add Wind Zone support (directional only)
- Add Global Wind Direction to WaterRenderer
- Add Global Wind Turbulence to WaterRenderer
- Add Swell preset to ShapeGerstner
- Add Enable Render Queue Sorting option to allow changing the render queue within the transparent pass. This is useful for some third-party integrations
- Add Far Clip Plane property to OceanDepthCache
- Add UnderwaterRenderer.AfterCopyMaterial event to allow easy underwater material changes via script
- No longer disable components silently if they fail validation
- Improve shifting origin handling for tiled textures (like foam)
- Add vertical axis support to shifting origin
- Make some more properties public
- Make Ocean-Underwater material the default
- Validate that refraction is enabled if using transparency
- Validate that custom passes are enabled if using underwater
Fixed
- Fix “Screen position out of view frustum” with 2D scene view when planar reflections is active
- Fix PSSL shader compilation error for FFT waves
- Fix OceanDepthCache not working after disabling then enabling in builds
- Fix Hide Depth Cache Cam not applying immediately
- Fix OceanDepthCache’s very short capture range (from 1,000 to 10,000 and now configurable)
- Fix effects being incorrect based on water depth when sea level is not zero
- Fix missing caustics when using shifting origin on mobile devices
- Fix tiled texture quality being dependent on LOD Resolution. They are now scaled by LOD scale. This may require changing your scale values for these textures to look as they did before
- Fix Spline.UpdateSpline not working in builds
- Fix wave spline initialization causing inconsistency between editor and builds
- Fix errors when inspecting Shader Graph nodes
Please see the release notes page for complete history.