Ægir is a completely scalable large body water system featuring a mesh generation and tiling system, custom adaptive and reactive shaders, and a GPU particle system for splashes and mist. The system adapts to any environment its placed in by generating a depth and flow texture which influences the movements of the water surface in the shader.
The goal of Ægir as a SIP is to create the project with performance in mind and learn as much as I can about shaders along the way. Ideal completion of the SIP would be to have this as a customizable system ready for future development to turn it into an asset on the Unity Asset Store. Developing the required materials for converting this to an asset on the store is outside of the scope of the project for the SIP and would most likely happen after graduation.
As of Early April 2020, Ægir has been completely rewritten into a more optimized mesh generation system allowing for the creation of millions of vertices in just a few milliseconds. The shaders are currently being finalized into a unified shader that handles the vertex displacement, reactivity, and water surface. The tools window has been completely revamped into a custom Unity editor window, presenting the user with numerous customization options. The next goal, although most likely after the SIP fair is beginning to creating the GPU particle system in the compute shaders and their screen-space collisions. My personal goal for considering the project complete enough for my SIP is to have the mesh generation system, unified surface shader, updated tools window, and ideally, foundations of the GPU particle system implemented. Development on this project does not cease after the SIP fair, I am really excited to keep working on Ægir, and I currently have a roadmap in place that extends out through August.
Initial SIP Pitch - Jan 2019
Ægir gives a user the ability to generate a mesh of any size, containing any number of tiles, and every tile containing anywhere from 2-255 vertices per axis.
Generation slowed down for demonstration purposes
By utilizing the power and parallelization of the modern GPU, Ægir will come with performance by default.
The newly optimized system runs exponentially faster on meshes of roughly the same size and multiple times faster on meshes that are drastically larger than what was capable on the CPU version of the system. For example, the CPU system could handle ~1,000 animated vertices at 250 FPS, vs the current system (displayed right) running over 1,000,000 animated vertices at over 800 FPS
Standalone build running a 1000 x 1000 unit, 16 tile mesh (1,040,400 total vertices), animating over 3 layered Gerstner waves
SEAMLESS MESH DEFORMATION
Ægir tiles have two sets of UVs, the first taking the entire mesh into account and the second set for each tile itself. By utilizing these UVs and world space vertex positions the tiles texture and animate in the shader seamlessly.