WaveMaker 2

by [email protected]

This is a paid asset, but now you can download WaveMaker 2 Free.

Detail this asset from Unity Store: Original Link

WaveMaker 2 v2.1

(Tested with Unity version 2020.3.23f1)

Download Now

Wave simulation asset that creates a rectangular mesh that is modified real-time to look like liquid by using interactors and fixing areas. How the surface is displayed is up to the user.

📚 Visit the OFFICIAL WEBSITE for:

– Live demos to play with them in your browser, pack of downloadable builds for your PC.

– Tutorials, practical examples.

– Roadmap, bugtracker, support, F.A.Q.

🎥 View all videos available in the YouTube Playlist.

đź“ś Follow the official Unity Forum thread.

💎 Key points of WaveMaker compared to similar assets

This is a mesh modifier, not a visual trick (2D shader with or without vertical offsets). Waves are more correct and it is actually simulated in 3D in the CPU, so devices with GPU support limitations are supported.
Your shaders don’t need to be specific for this asset, if your shader works with a normal mesh, it will work with WaveMaker, so it supports the same rendering pipelines as your shader.
It is a two-way coupling system: Water moves objects, volume occupancy is calculated and objects generate waves at the same time. If you pay attention, most buoyancy systems can’t do this, allowing for more interaction for your game.
You can use the API of the interactors and surface to gather simulation data and use it for your own purposes.

✔️ What the asset CAN do…

Create small, medium or long surfaces like pools, portals, ponds, simple river shapes…
Generate waves reacting to selected colliders
Apply forces to selected rigidbodies to make them float and drift while generating waves due to volume occupation. Complex rigidbody with overlapped setups supported
Make the waves look like water, mud, cream and denser liquids at the resolution you want
React to static objects or borders by painting the areas of the surface you want to be fixed
Works like any other mesh with your own material (hide parts with transparency, change look using shaders, use the API to generate your own effects. etc)

✨ Current Features

Unity 2019, 2020, 2021, and all rendering pipelines support. (2018 still supported but needs manual installation of required packages)
Mesh properties updated real-time to work with lighting
Scene hierarchy agnostic
Wave speed, damping and smoothing parameters. Substepping to avoid inestabilities
Simple interaction mode based on relative velocity for any shape or orientation of the surface
Advanced interaction mode based on occupancy of liquid volume for more advanced features on horizontal surfaces, like Buoyancy and drifting (floating forces)
Arbitrary surface position and rotation, length and width
Areas can be fixed manually or automatically to ignore them and allow waves to “hit” on them
Timestep independent
Idle/rest status of surfaces to reduce computation to a minimum
Many example scenes and create menu shortcuts included

❌ What the asset CAN’T do in the current version…

No breaking waves
Not suited for huge surfaces like oceans, complicated river shapes and waterfalls
It is not a water shader, it’s a mesh modifier. No FXs are included. You must use your own shaders / materials and use the API to gather and use the data provided
Aerodynamics (effect of wind and such), shore slowdown and similar effects
Different behaviour of the surface depending on water depth
MeshColliders cannot be used as interactors. Simple colliders should be used instead

More Technical information:

Heightfield-based realtime fluid simulation on CPU
Two-way coupling simulation: Waves affect objects and objects generate waves at the same time.
Mesh normals updated real-time to work with lighting
Possibility to add substepping to avoid inestabilities and increase simulation speed
Arbitrary surface position and rotation, length and width. It works in local space
A file with the resolution and fixed cells is stored and can be shared between surfaces
Timestep independent
Fixed Update simulation time depends on type of simulation. It can go from 0.01ms to 4ms in the worst case scenario (many floating objects occupying the whole surface). Generally it stays between 0.2 and 1ms.
Development details:

Jobs, Burst, Mathematics and Collections packages required. Details on the versions required is listed in the official documentation website.
Unity 2019, 2020, 2021 support.
Support for 2018 is still available but since some required package versions are not available in the Package Manager, a manual installation is now required.
Quality code, full documented API to get gradients, heights, and some other data from the surface and interactors. More data will be available soon.
Full C# source included. Assemblies and namespaces used everywhere.
Heavily multithreaded code written with Jobs and Burst, with very small CPU cost.

Related Posts

Leave a Comment