Nathan Gardea - Tesselated Snow

A snow shader built in Unity using HLSL

Overview - Tesselation fascninates me and I thought of this shader as the perfect oppurtunity to explore its benefits and its downsides. I do know that it is quite expensive relative to POM shaders, though I can see some benefits over them. In this shader, I wanted to create a snow mask texture that acts similar to a shadow mask that determines where snow is placed. Once snow is placed, the mesh will tesselate and dispace vertically. I want to also make this interactive. If an object moves across the surface, the snow will compress and regenerate slowly. This shader will add a lot of realism to a snow scene that I can create in a future project.


Current Version

  • Snow Mask
  • Interactable
  • Regenerates over time
  • Performant tesselation

Future Roadmap

  • World space snow mask.
  • Rounded vertex displacements.
  • Lighting.
  • Prevent floating objects from contributing to snow mask at a certain threshold.
  • Interactability using sdfs.
  • Regenerating snow.

Tesselation

  • Fractional odd partitioning.
  • Distance based tesselation.

Snow Mask

  • Top down orthographic depth pre pass.
  • GUI to help identify baking zone.
  • Updates in real-time.