Crest is a class-leading water system authored by professional game developers.Documentation • Email • Discord • GitHub • YouTube • XImportant: The Shallow Water package is NOT required for shallow water. It is an integrated shallow water simulation - a next-generation feature. Crest 5 can still have shallow water using the same features as Crest 4 does.Crest is a trusted water solution by many studios for its quality and performance. It has been implemented in several successful games and simulators and is the subject of SIGGRAPH talks.Nominated for Best Artistic Tool in the 16th Unity Awards.CREST 4 x 5 HIGHLIGHTS————————————–Supports all render pipelines in one package.Re-architectured to further performance scalability.Many new improvements and features.Some features (mostly deprecated) have been removed, while others have been moved to separate packages. Please refer to the Release Notes for more information.WORKFLOW——————Add water in minutes with two components (water surface and waves).Sane and balanced defaults.Helpful tooltips including materials.Detailed help boxes display validation errors directly in the inspector with buttons to fix problems directly.Online and offline documentation.Fully documented scripting API.Supports all three render pipelines in one asset.Imports into the Packages directory as an editable UPM package.No requirement to remove Crest before updating like other assetsFEATURES—————Novel Level of Detail SystemBoth mesh and data are rendered using several LODs. This allows high fidelity up close without sacrificing performance. This system has been used for several years, including multiple successful titles, thus is mature and battle-tested. More information: https://docs.crest.waveharmonic.com/Manual/SystemNotes.htmlRich Selection of DataDue to Crest's scalable system, it can execute several data sets. These include Animated Waves (displacement), Dynamic Waves, Water Depth, Water Level, Albedo, Flow, Foam, Shadows, and Surface Clipping. The selection has been expanded since launch to now include Absorption and Scattering.Powerful Input SystemThese data sets have accompanying inputs, with different modes to use renderers (mesh, trail, line, and particles), textures, etc., as data sources, to inject and manipulate data. Shader Graph is supported (BIRP and URP only due to a bug/limitation with HDRP).Query SystemQuery water displacement, normals, and velocity (using asynchronous GPU read back) to get data to the CPU. Furthermore, other data can be queried like flow and signed-distance to the shoreline.Physically Based RenderingSimulated light transport including approximation of reflections, refractions, transmission, scattering, caustics, and shadowing.UnderwaterUnderwater effect with pixel-perfect partial submersion. Includes a meniscus (water line), and models out-scattering (darkening with depth).Water PhysicsBuoyancy and drag are provided with a semi-modular floating object system. With layers, physics can be nested to allow floating objects to behave correctly inside other floating objects (eg barrel in a boat).Deterministic FFT and Gerstner WavesWith innovative "equalizer" style wave authoring, create wave conditions from calm seas to monstrous waves for storms. Multiple wave sets can be blended together, including local waves with edge interpolation. This is the most powerful wave system for Unity.Shallow Water Wave AttenuationDampens waves based on the water depth similar to how they would at shore, and importantly prevents waves from rising above the surface.Important: This is not the same thing as shallow water simulation, which is a separate asset.Absorption & Scattering SimulationChange absorption and scattering at the texel level. Give rivers and lakes different colors, or simulate various beaches by using the shoreline absorption/scattering.Dynamic Waves SimulationAn advanced dynamic wave simulation used for modelling wakes, ripples, wave reflections, and other forms of waves.Foam SimulationA rich foam simulation where foam dissipates over time. Foam contributions can come from turbulence, shorelines, and foam inputs.FlowAdvects waves, normals, foam, and caustics. Bring your own flow map via a texture or use our many other input modes.Shadow SimulationProvides both soft and hard shadows. The former is used for shadowing the water volume; it will vary the softness by the scattering/absorption coefficients. The latter is used to improve on Unity's shadows, which affect specular highlights.Surface ClippingThis is used to remove the water surface for boats, caves, etc. Holes can be cut using a mesh or signed-distance primitives for extra precision.Varying Water LevelChange the water level to create elevated lakes. It is possible to create a gradient to create rivers and streams. Bring your own height map via a texture or use our many other input modes.Albedo LayerApply color to the water surface similar to decals. This is perfect for algae in swamps.Online & Offline DocumentationWe provide documentation both online and offline. Documentation includes a fully documented API. Offline documentation is in the form of a PDF. Online documentation can be found here: https://docs.crest.waveharmonic.com/About/Introduction.htmlDocumented APIWe provide an extensive API which is fully documented. Here is the page for the main component: https://docs.crest.waveharmonic.com/API/WaveHarmonic.Crest/WaterRenderer.htmlMuch MorePlanar reflections including Total Internal ReflectionsFlexible time synchronisation to support networking and cutscenesWater shader ships as a Shader Graph (only two nodes, internals are still HLSL)And much morePlease see extension assets below for more features.Please see the Frequently Asked Questions section in our documentation for more important information.Sample scene selection may not include ones shown in marketing materials and screenshots.COMPATIBILITY————————Unity 6 supported.Unity 6 URP Render Graph & compatibility mode supported.Motion Vectors (HDRP and Unity 6 URP only).Depth-based effects like Depth of Field (HDRP and URP only).Raytraced Reflections (HDRP only).Forward, Forward+, Deferred, Perspective, and Orthographic supported.Stereo Rendering (VR/XR) supported.LIMITATIONS——————–BIRP XR single-pass instanced is currently broken (Unity bug).URP XR multi-pass is currently broken (Unity bug).Planar reflections currently do not support XR.Manipulating data with Shader Graph is not supported with HDRP (Unity bug).These known limitations may be solved in future versions.EXTENSIONS——————–These are optional extensions.CPU Queries: Not required as there are GPU queries provided. This is for GPU-less environments.Paint: Paint data with a non-destructive workflow.Portals: Restrict rendering to a mesh. Useful for aquariums and portholes.Shallow Water: A shallow water simulation. Not required for shallow water, as Crest has wave attenuation. It is a next-generation feature.Shifting Origin: Keeps the camera at zero. Only needed for very large worlds.Splines: Powerful tool for creating lakes, rivers, and more.Whirlpool: Bespoke feature to create a customizable whirlpool.REQUIREMENTS————————Unity 2022.3 or Unity 6 (latest patched version).Shader Graph package.Shader compilation target 4.5 or above.Graphics API that is not OpenGL or WebGL.One license required for each individual user (see EULA).As a general requirement, it may be necessary to update to the latest patched version of Unity in order for a problem to be solved. Furthermore, legacy versions of Unity are not supported.CREST 4 MIGRATION——————————There is no assisted migration from Crest 4 to Crest 5. All GUIDs have been regenerated so Crest 5 can be imported alongside Crest 4 for manual migration.ASSET COMPATIBILITY———————————–We avoid non-standard techniques and are not aware of any major incompatibilities. Third-party assets will need time before integrations are available. We have a list of known integrations, including Dynamic Water Physics 2 (DWP2), Enviro 3, and Expanse.Crest is designed to be powerful, flexible, and scalable, which may not be suitable for low-end mobile devices. However, several studios have successfully used Crest on various platforms, including Android, iOS, PC, PlayStation, Switch, and Xbox. While we don’t have direct access to consoles ourselves, we often incorporate feedback from studios.One limitation of Crest is its limited support for rendering multiple cameras simultaneously, which may be necessary for split-screen multiplayer, for instance. This is because the Level of Detail (LOD) detail is typically centered around a single position, usually the main camera. All other aspects work correctly for multiple cameras.The Crest code incorporates MIT-licensed code. The copyright notices are provided in the included file ThirdPartyNotices.md.