This is a repo to show my weather system prototype.
Key Features:
- Sun and Moon (time of day system)
- Rain and snow
- Rain ripples and droplets for materials
- Simple snow accumulation effect
- Weather Changes and material shifting
- Cloud system (with a little artifacts)
Tools & Softwares:
- Unity for scene
- UE5 & Blender for preview
- 3ds Max for modeling
- Substance Designer for producing textures
A video of the time of day system.
weather_system.mp4
A video of weather changes and material shifting feature. As you can see, when it turns from rainy to snowy, the material changes (the white snow accumulated up).
snow_rain_mats2.mp4
Some images of the clouds.
I customized new render features to define the sky rendering pass, the atmosphere pass, the cloud pass, the shodow pass.
I used ScriptableObject in Unity to control a variety of conditions in the weather system, such as the precipitation, the temperature, the time, etc.
I write shader codes to control the shifting between snowy shader and rainy shader based on the global temperature.
Because the textures of my assets contains specular and metallic attributes, I modified the Unity PBR shader from using glossy attribute into specular attribute.
I also collaborated with my friends to write the cloud shaders. We used multiple perlin noises to construct the basic shape, then sampled and reprojected the value, finanlly using TemporalAA to denoise.
I used VFX graph system in Unity to build the rain and snow, which is related to the particle system.
In this way, I can use the temperature in my weather system as a global variable to switch between rain and snow.


