Frequently Asked Questions#

Where is the sample content?
How can I migrate from Crest 4?
Is Crest well suited for localised bodies of water such as lakes?

Yes, see Water Bodies for documentation.

Can I push the water below the terrain?

Yes, this is demonstrated in Fig. 2.

Can I sample the water height at a position from C#?

Yes, see usages of SampleHeightHelper class in SamplingHelpers.cs. The WaterRenderer uses this helper to get the height of the viewer above the water, and makes this viewer height available via the ViewerHeightAboveWater property.

Can I trigger something when an object is above or under the water surface without any scripting knowledge?
How do I disable underwater fog rendering in the scene view?

You can enable/disable rendering in the scene view by toggling fog in the scene view control bar.

Can the density of the fog in the water be reduced?

The density of the fog underwater can be controlled using the Fog Density parameter on the water material. This applies to both above water and underwater. The Depth Fog Density Factor on the Underwater Renderer can reduce the density of the fog for the underwater effect.

Can I remove water from inside my boat?

Yes, this is referred to as ‘clipping’ and is covered in section Clip Surface.

How to implement a swimming character?

As far as we know, existing character controller assets which support swimming do not support waves (they require a volume for the water or physics mesh for the water surface). We have an efficient API to provide water heights, which the character controller could use instead of a physics volume. Please request support for custom water height providers to your favourite character controller asset dev.

Can I render transparent objects underwater?
Can I render transparent objects in front of water?
Can I render transparent objects behind the water surface?

Compatibility#

Which platforms does Crest support?

Testing occurs primarily on MacOS and Windows. iOS and Android are also periodically tested.

Firstly, make sure your target platform adheres to the Requirements.

We have users targeting the following platforms:

  • Windows

  • MacOS

  • Linux *

  • PlayStation *

  • Xbox *

  • Switch * **

  • iOS **

  • Android/Quest **

* We do not have access to these platforms ourselves.
** Performance is a challenge on these platforms. Please see the previous question.

Crest also supports VR/XR Multi-Pass and Single Pass Instanced rendering.

For additional platform notes, see Platform Support.

Is Crest well suited for medium-to-low powered mobile devices?

Crest is built to be performant by design and has numerous quality/performance levers. However it is also built to be very flexible and powerful and as such can not compete with a minimal, mobile-centric water solution such as the one in the Boat Attack project. Therefore we target Crest at PC/console platforms.

That being said, developers have had success with Crest on lower powered platforms like the Nintendo Switch. Apple devices are good targets as their processors are quite capable all round. Meta Quest 2 is one device where it will be a struggle to take advantage of Crest.

Can Crest work with networked multiplayer?

Yes, the animated waves are deterministic and can be synchronised across the network. For more information see Network Synchronisation.

Note however that the dynamic wave simulation is not synchronized over the network and should not be relied upon in networked situations.

Does Crest support multiple viewpoints like for split-screen multiplayer?

Currently only a single water instance can be created, and only one viewpoint is supported at a time. We hope to support multiple simultaneous views in the future.

Providing both both players are near each other, split-screen multiplayer can be accomplished by setting the viewpoint between them. Your mileage may vary depending on your settings and expectations.

Does Crest support third-party assets?

Please see Integrations for third-party support.

Does Crest support orthographic projection?

Yes. Please see Orthographic Projection.

Does Crest support motion vectors?

Yes, but only for HDRP and Unity 6 URP. Please see Motion Vectors.

Troubleshooting#

I am seeing errors in the console and/or visual issues

When changing Unity versions, setting up a render pipeline or making changes to packages, the project can appear to break. This may manifest as spurious errors in the log, no water rendering, magenta materials, scripts unassigned in example scenes, etcetera. Often, restarting the Editor fixes it. Clearing out the Library folder can also help to reset the project and clear temporary errors. These issues are not specific to Crest, but we note them anyway as we find our users regularly encounter them.

I am seeing magenta materials after changing render pipelines

Unity has a bug where sometimes it will not correctly switch materials to the current render pipeline. Solutions can vary:

  • Restarting Unity

  • View the affected material’s inspector

  • Reimport the affected material/shader

This affects Shader Graph specifically. Find our water Shader Graph, right click and re-import it. It may appear as a blank file icon instead of the usual Shader Graph icon.

I can enter play mode, but errors appear in the log at runtime that mention missing ‘kernels’

Recent versions of Unity have a bug that makes shader import unreliable. Please try reimporting the Packages/Crest/Runtime/Shaders folder using the right click menu in the project view. Or simply close Unity, delete the Library folder and restart which will trigger everything to reimport.

Why aren’t my prefab mode edits not reflected in the scene view?

Crest does not support running in prefab mode which means dirty state in prefab mode will not be reflected in the scene view. Save the prefab to see the changes.

I am seeing “Crest does not support OpenGL/WebGL backends.” in the editor

It is likely Unity has defaulted to using OpenGL on your platform. You will need to switch to a supported graphics API like Vulkan. You will need to make Vulkan the default by overriding the graphics APIs.

Why I am seeing “The referenced script on this Behaviour is missing!” or similar in Crest’s sample scenes and prefabs?

This is normal and can be ignored. The sample scenes support all render pipelines which require render pipeline specific components to be serialized in the scene. If a render pipeline package is missing, then those components will also be missing.

I am seeing a “redefinition of ‘_ShadowMapTexture’” error when trying to build

This is a bug with Unity that affects the Built-In Render Pipeline. Doing a Clean Build can clear this up. Alternatively, disabling shadow map sampling at Project Settings ‣ Crest ‣ Features ‣ Built-In Renderer Sample Shadow Maps will allow builds to proceed.