Enoma

Project information

  • Category: Shader, VFX
  • Project date: 2021

Enoma

This is a game under development called Enoma , and it's being made in Unity URP.

Here I showcase 2 shaders (water and grass) and the VFX for the ability selection.

For the water shader, I used a mathematical function called Gerstner Waves to simulate the waves of the water. As the game is low poly, the shader also needs to update its normals for every time the vertices update their position. It also uses depth for the water color variation. The foam is a separate shader with the same displacement values as the water shader, but adds some offset, so the faces cast real-time shadows on the water. It uses depth for the contact foam, and uses the math function values on the z axis and the position of the vertex as masks for the foam that follows the moving waves.

The grass shader makes use of quads distributed on the ground mesh. It is an opaque shader with alpha cutout that uses a texture with the grass blades. It also uses the UV coordinates to control the grass color variation. The wind uses a gradient noise displacement, and it's offset is used to create more color variations. This creates the color wave effect on the grass. The quads are slightly rotated to face the camera, as this creates the illusion that the grass is higher without obstructing too much some objects on the scene.

The VFX uses emission materials and easing functions using a tween engine. The sun beam is another custom shader that simply uses gradient noise and Fresnel as alpha masks.

For the Post-Processing, the scene uses mainly bloom, and some color corrections and color grading.