Interaction with player and movable object. This is done through a blueprint that communicates with a render target which in turn acts as a mask for the shader. The snow on interactive objects disappears in a particle effect when they are interacted with.
Paint out snow with vertex colors. As part of the ease of use goal, I created the possibility to paint out or in snow on any object you want.
Object- oriented shader. Also for the ease of use. Allows you to rotate objects with the shader on and the snow will always stay on top of the object.
This is a presentation of an interactive snow shader which goal is to be a shader that the world interacts with and that has ease of use.
The interaction happens through blueprints that send a ray from either a special joint that in this case sits at the ankle of the player or directly from an object when it senses movement, as shown with the interactive object. This then changes a render target so prints are painted on it. This is then used as a mask for the shader so it can determine where the snow should be pushed down.
One challenge was that I wanted the snow to be interactive no matter what object it is on without being affected by interaction from other objects. This is done partly by dynamically creating new render targets when new objects are interacted with to save on performance, and partly by changing the size of prints so they always seem to keep the same size no matter how big the object is.
In addition to the in-game functionality, my goal was to make the snow useful for level artists. I did this by letting the users decide where the snow should be through vertex paint, to dynamically change where the snow is on the object when they are rotated. To improve this, I would also like to have the entire shader in a function that users can easily implement in their objects material. Making the shader oriented based has a major advantage. The snow always feels like it ends up where it should and that it becomes much easier for people who make levels to rotate and move objects with the shader on.
All textures and objects in the work are sourced from either the marketplace or other sites.