An update from the future. Everything started to come together for our weather and interaction system. Procedural rain puddles are now interactable as promised. The same interaction data will also be used for actual water bodies like ponds, lakes, etc.
This method actually allows ripples to be reflected as well, but I haven't been able to feed the necessary data yet. Once that is in place, it will also ensure that ripples are only generated at actual points of contact with the water, preventing them from appearing or spreading in unrelated areas.
Besides the ripple normals, I also tried to create a sense of depth by feeding the displacement data into the puddle amount parameter, which drives puddle height.
As a quick recap:
We got snow and rain as our weather types (I'm considering ash too for volcanic areas by reusing the snow logic), and they respond to each other to some extent. If there are puddles prior to snowfall, for example, they might freeze during the process and then be revealed when the player or any other object interacts with them.
Rain comes in the form of wetness and puddles based on the textures' height. In this clip they're mostly opaque, but they actually have refraction and blur, which are also affected by interaction ripples.
Snow goes from thin coverage to the desired thickness and is deformable.
This is still a WIP, and it will receive a lot of polish, such as ripple sizes, speed, etc.
You might be wondering why all this work is going into these systems. My intended end goal for these features, apart from their own contribution, is to boost other gameplay aspects and create a certain feeling for the player. For example, if the player shoots a magic projectile, it will melt the snow and even create ripples on its way to the target.
Another benefit is allowing players to experience the same events, quests, etc. under different atmospheric conditions. And honestly, these systems are just really fun to work on. :D
#MadeWithUnity #TechnicalArt #Shader #EnvironmentArt #GameDev #Gaming