Dynamic Acid Rain Material

This project was developed over three months at ISART Digital in Montréal as a team production.

The game revolves around successive waves of acid rain falling onto the level. The player must solve a series of puzzles while taking shelter during rainfall phases. Timing and environmental awareness are key elements of the gameplay experience.

The element I am showcasing here is a dynamic material created in Unreal Engine 5. The material simulates rain droplets appearing on surfaces during rainfall and progressively transitions into a rusted, corroded state due to the acidic nature of the rain.

One of the main challenges was designing the material system to function across multiple rain cycles, allowing the environment to evolve over time. In some levels, rain did not affect every section simultaneously, which meant certain areas became more corroded than others. This required the material to support localized activation and independent progression.

Technically, the material needed to:

Toggle rain on and off (0 = no rain, 1 = active rain)

Support gradual corrosion progression over time (for example: 0 → 0.3 → 0.6 rather than a simple 0 → 1 transition)

Be adaptable across different meshes while maintaining consistent visual behavior

The primary challenge was building a flexible system that could be applied to multiple assets while allowing precise control over both rain activation and progressive surface degradation.

Material transitionning to rain then to rust metal due to acid

Material rains drops, riplles and puddles

Rain material drops

Evolution of the environment texture during 4 phases

Evolution of the environment texture during 4 phases

Vertex paint included allowing to exclude rain and rust on parts not affected by rain

Vertex paint included allowing to exclude rain and rust on parts not affected by rain

We wanted to see two differents section in our level one fully affected by rain

We wanted to see two differents section in our level one fully affected by rain