Snow Generator v1.0

User Guide

By Maxime Argon

Create realistic to stylized snow meshes from scratch

Quick set-up

From the engine menu, open the 'Plugins' window.

Search for the 'Snow Generator' plugin.

The plugin will be installed only after the editor restarted.

🚨 Notes and disclaimers 🚨

How to use ?

Once the plugin installed, you will be able to click on a new toolbar button.

Clicking that button will open the Snow Generator panel.

Don't hesitate to dock it on the side of the editor for easy access!

NOTE:  Opening the Snow generator panel will create a temporary 'SnowGenerator' blueprint in your Outliner. You shouldn't have to play with it, simply leave it be.


If you choose to close the Snow Generator panel, the temporary blueprint will be destroyed, and re-instantiated when re-opening the panel.

Step-by-step tutorial

1. Generating the area cache

First step will be to define the area where we want snow to be added.

Add each mesh to the array 'Meshes To Add Snow To' ; or tick the 'Select By Tag' boolean and choose a tag to target.


Once done, you can proceed and click the Generate Cache button in the panel.

2. Generating the snow mesh

Click the Generate Mesh button to initiate the main process.

This step can take some time depending on the area cache size, your computer config, and Unreal Engine settings. 


Once the process is over, you will see snow generated onto the selected target mesh(es).

3. Baking the generated mesh

The snow you are seeing so far is not saved anywhere in your project files. Reloading the scene or changing generation parameters will reset the process.


Clicking the Bake Mesh button will create a copy of the generated mesh in your files.

Keep in mind that it uses your currently opened content browser path to save the baked mesh.

Features

The plugin offers a variety of tools for you to use.

Let's quickly go through all of them...

Generate Cache

Creates the selected actors' generation area cache. Will be used to define where snow can be generated.

Generate Mesh

Starts the snow generation process. This step can take some time depending on your computer config.

Bake Mesh

Bakes the snow generation with the selected parameters into a mesh directly added to your project files.

Clear Generation

Removes and clear the currently generated snow in the scene.

Live Update

Toggles a real-time update of the snow generation. Refreshes the generation every time a parameter is changed. Use with caution as generation loading time can take a while.

Dialog On Actions

Toggles the activations of context menus updating you on the generation process, and/or possible warnings and errors. (Automatically disabled when 'Live Update' is set to true)

Save Preset

Opens a file explorer window for choosing the preset saving location in the project files.

Load Preset

Opens a file explorer window for choosing the preset to open from the project files.

List of variables

Targeting

Meshes To Add Snow To (Array of Actor)

Takes a list of actor(s) as the desired target(s) to generate snow onto.

Select By Tag (Boolean)

Toggles between two methods for selecting which mesh(es) in the scene to generate snow onto.

Tag Name (String)

Takes a tag name to select the desired mesh(es) in the scene as target(s) to generate snow onto.

Parameters

🚨 Grid Spacing (Float

Determines the distance between snow spheres in the generation to create an uniform point cloud on a grid. 

The lower the value, the more time it will take to generate snow

Sphere Radius (Float)

Defines the radius of each snow spheres used in the generation, affecting their size and coverage.

Snow Sphere Scale (Float)

Adjusts the scale of each snow spheres, influencing the overall snow coverage area.

Remesh (Boolean)

Enables or disables the remeshing process to refine the geometry as a mass instead of a point cloud.

Snow Thickness (Float)

Sets the thickness of the snow generation to determine how deep the snow appears.

🚨 Smooth Iterations (Integer)

Specifies the number of smoothing iterations to be applied to the generation for reducing rough edges.

The higher the value, the more detailed the generation will be

🚨 Grid Cell Size (Float

Controls the size of each cell in the generated cloud point, impacting the overall resolution and detail of the grid. 

The lower the value, the more detailed the generation will be

🚨 Subdivision Amount (Integer

Determines the level of subdivision applied to the generation for creating finer details. 

The higher the value, the more detailed the generation will be

Use Alternative Coverage Method (Boolean)

Toggles between two methods for calculating snow coverage on the surface.

Snow Coverage (Float)

Adjusts the amount of snow on an angled surface, the value corresponding to the maximum normal taken in account to generate snow.

Displacement and Noise (Enum)

Selects the mode for combining displacement and noise effects.

Displacement Texture (Texture)

Specifies the texture used for displacement mapping to create surface variations.

Displacement Amount (Float)

Controls the intensity of the displacement effect, altering the depth and height of surface features.

Displacement Center (Float)

Sets the central point for the displacement effect, determining the origin of the surface variations.

Displacement Image Channel (Integer)

Selects the image channel (RGB) to use for displacement mapping, affecting how texture data is interpreted.

Noise Base Intensity (Float)

Adjusts the intensity of the base noise layer for adding subtle surface variations. 

Noise Base Frequency (Float)

Controls the frequency of the base noise layer, affecting the scale of noise patterns.

Noise Mid Intensity (Float)

Modifies the intensity of the middle noise layer for adding medium-scale surface details.

Noise Mid Frequency (Float)

Sets the frequency of the middle noise layer, influencing the distribution of noise patterns.

Noise Top Intensity (Float)

Changes the intensity of the top noise layer for adding fine surface details.

Noise Top Frequency (Float)

Adjusts the frequency of the top noise layer, affecting the granularity of noise patterns.

UV Tilling (Vector2D)

Controls the tiling of UV coordinates for repeating textures across the surface.

UV Offset (Vector2D)

Sets the offset for UV coordinates to shift the texture position on the surface.

Asset Mesh Name (String)

Sets the baked asset mesh name in the project folder.

Enable Nanite (Boolean)

Enables or disables the use of Nanite for optimizing high-poly meshes when baking the generation.

Replace Generation With Mesh (Boolean)

Toggles the replacement of procedural generation with the baked mesh.

Material (Material Interface)

Specifies the material to be applied to the generation and mesh.

Contact & Info

Tool made by Maxime Argon.


This tool is based on  CB3DART 's work and research. My creation uses the fundamentals he explained in a short series of videos.