FIRST STEPS IN FROST
This tutorial will guide you through your first steps while exploring the basic capabilities of the FROST particle mesher.
This tutorial assumes that you have installed FROST as described in the Installation Guide and have licensed it according to the Licensing Guide. If you are running FROST in Demo Mode, keep in mind that some steps described in this tutorial will produce slightly different visual results due to the limitations described here.
It also assumes that you have customized your User Interface by dragging the MacroScript Icons from the Customize User Interface dialog to a Frost toolbar as described in the Creating Frost Objects chapter of the User Manual.
For our first experiment with FROST, let’s create a Standard Particle Flow, modify it a bit and create a Metaballs mesh out if its particles.
- Press the 6 key on they keyboard or go to 3ds Max Main Menu > Graph Editors > Particle View.
- In the Particle View, drag the Standard Flow item from the Depot into the View to create a new default Particle Flow.
- Select the Speed operator and check the “Reverse” option to get the particles moving upwards.
- While on frame 0, select the PF Source icon in the Viewport and click the FROST icon on the Frost toolbar.
The color of the FROST object will be the same as the color of the PF Source, and the position of the FROST icon will be centered at the source object (thus if you would have created the FROST on a frame other than 0, the icon would have appeared halfway up the stream). This is done to allow the creation of a FROST object from multiple selected sources – in that case, the FROST icon will be placed in the center of all selected objects and its color will be an average of all objects’ wireframe colors!
Move the time slider and watch the Particle Flow being converted to a Union Of Spheres mesh by FROST. Union Of Spheres is the default meshing mode and is good for fast previews, but the quality of the viewport mesh will be relatively low with the factory default settings, so let’s look at the FROST UI in the Modify Panel and tweak some parameters…
Adjusting the Mesh Resolution
- Select the FROST icon in the viewport.
- Switch the 3ds Max Command Panel to Modify tab.
- Optionally, expand the Modify Panel to two columns by dragging its edge to the side to reveal more FROST controls at once.
- Make sure the Meshing and Meshing Quality rollouts are expanded.
- In the Meshing Quality rollout, locate the Viewport spinner in the Relative to Max. Radius group of controls, click on its [>>] options button and select a value of 3.0 to replace the default 1.5.
RESULT: The viewport mesh of the FROST object will increase resolution and form better-shaped spherical blobs.
The default settings of the FROST object use the Relative to Max. Radius set of controls. In this mode, the resolution is calculated by searching all particles for the largest radius and then taking a fraction of that radius as the size of the grid used to calculate the final mesh. Thus, higher values produce a finer grid resolution as the max. radius is subdivided more. This mode is very adaptive and allows you to play with the particle size freely without losing neither speed nor quality as particles become very small or very large – the mesh will adapt its resolution to the largest particle’s size.
Let’s play with the Particle Sizes a bit to see how the mesh is adapting to the changes…
Right now, all particles use the same particle radius value provided by the Radius parameter located in the Meshing rollout. The default value is 5.0. Let’s tweak this value and see how the particles will change.
- In the Modify Panel, spin the Radius spinner up and down and watch the FROST mesh changing as you modify the value.
- Try direct manipulation of the Radius in the viewport – enable the Select and Manipulate icon in the 3ds Max Main Toolbar and tweak the green Radius Manipulator which appears centered at the FROST icon. The FROST mesh will change respectively.
- Press the [>>] options button and select the value of 10.0 from the list.
Changing the Meshing Mode To Metaballs
As mentioned previously, the default Union Of Spheres meshing mode is faster for quick previews in the viewport, but the spheres are not merged smoothly together – compare the illustrations on the Meshing Modes page.
Let’s switch the meshing mode of our FROST object to Metaballs:
- Select the FROST object
- In the Meshing rollout, change the drop-down list from Union Of Spheres to Metaballs.
- Alternatively, click the Metaballs icon (blue icon) on the Frost toolbar.
RESULT: The FROST mesh will become smoother, blending the influence fields of the particles much better.
The default settings of the Metaballs mode are Radius Scale 1.5 and Surface Level 0.3. Play with the two values a bit to see how they affect the mesh.
In Metaballs mode, each particle provides a spherical influence field centered at the particle’s position. This influence falls off with distance. The influences of all particles are combined and then the points in space where the influence has a specific value are connected with polygons to define the mesh. The Surface Level is this threshold which defines the points the surface will pass through. Thus higher values shrink the surface towards the particles where the influences are stronger, while lower values move the surface away from the particles’ positions.
- In the Metaballs rollout, click on the Surface Level’s options button [>>] and select 0.7
- Make sure the Radius Scale value is at 1.5 to produce the same result as seen on the screenshots.
Currently, all particles have the same Radius of 10 units. Let’s apply a random variation based on the particle ID channel.
- In the Meshing rollout, check the Randomize Radius by ID option – the particle radius will become slightly more varied.
- Increase the Variation % value from 40.0 up to 99.0 – the difference in particle size will be increased, with some particles completely disappearing from the Metaballs mesh. Set the value to 50.0
- Change the Seed value from 12345 to any other value to see different random distribution of the variation values. Then change it back to 12345 to stay consistent with the images in this tutorial.
Other than Particle Flow, the Frost Variation % value only reduces the particle size down to the specified value, but does not increase it above the Radius value. To produce larger particles, you will have to increase the Radius.
Play back the animation or drag the time slider.
Notice that the random size variation sticks to the particles throughout their life.
This is because the random variation is based off the Born ID channel of the particle – a unique value given at birth to every particle in Particle Flow. The same is true for Thinking Particles, but in the case of sources like geometry, particle files etc., the ID channel might not be present. In those cases, the order of the particles within the stream (in other words their Index) will be used instead. The text field just above the Randomize Radius by ID checkbox will display relevant information about the state of the ID channel!
As mentioned previously, the Relative to Max. Radius option is fast and allows very large particles to be meshed adaptively since it uses the size of the largest particle to determine the resolution of the mesh. But with Randomize Radius by ID turned on, we now have particles with varied sizes, and while the current Relative meshing produce enough resolution for the larger particles, the smalles ones appear edgy and misformed.
We can either increase the Relative meshing value, or switch the FROST object to Absolute Spacing which defines the size of the polygons in world units and does not change as particles change size. Let’s do the latter:
- Select the FROST object
- Click the Absolute Spacing radio button.
- Click the options button [>>] next to the Viewport value and select 1.5 units.
RESULT: Note that the FROST mesh will now have enough definition to display the smaller particles as rounded shapes.
Using the Particle Flow Size Values
So far, we controlled the size of the particles using the global Radius value in FROST, as well as the options to randomize the radii based on the particle’s ID.
Now let’s switch FROST to use the incoming particle size and scale values generated in Particle Flow.
- In the FROST Meshing rollout, check the option Use Radius Channel – the FROST mesh should change back to a radius of 5.0 because the default particle Size (Diameter) in a Standard Particle Flow is 10.0 units (2*5.0).
- Open Particle View
- Select the Shape operator
- Change the Size of the particle to 20.0 – notice that the FROST mesh in the viewport DOES NOT UPDATE!
- In the Modify Panel, in the Frost rollout, check the Viewport Update > When Particles Change option – the mesh will update immediately.
- Change the Shape operator’s Size value to 40.0 in the Particle View – the FROST mesh will now update in the viewport immediately.
- Check the Scale % option in the Shape operator and change it to 50.0 – the FROST mesh will change to show particles that are half the size – half of 40 is 20, and a diameter of 20 is the same as Radius of 10, so the mesh in the viewport looks the same as with the global Radius settings.
Note that the randomization of the Radius channel is still performed, regardless of the Radius data source…
As you can see, both the Size and the Scale channels of the Particle Flow affect the Radius value seen by FROST. The same applies to Thinking Particles.
This means that we could now add a Scale operator to Particle Flow to change the Radius of the particles over time.
- Drag a Scale operator from the Depot into the Particle Flow and drop it right behind the Shape operator – the particles will become larger because the Scale of the Shape operator will be replaced with the 100% from the Scale operator!
- Change the Type to Absolute.
- Switch the Sync By: option to Particle Age.
- Move to frame 50, enable AutoKey and right-click the Scale Factor’s X % spinner’s arrow to reset to 0.0 – this produces keyframes for X, Y and X with values 100.0 on frame 0 and 0.0 on frame 50.
- Play back the animation – the particles will scale down to 0 size over 50 frames.
The particle scale is not the only channel that we could animate to affect our FROST object. Let’s animate the Vertex Colors of our particles based on their Age…
The following works only with the LICENSED version of FROST and CANNOT be done with the DEMO which shows no shaded mesh in the viewports and does not render.
- Drag a Mapping operator from the Depot into the Event 01 of the Particle Flow, right after the Scale operator.
- Change the Sync To: option to Particle Age.
- Change the Channel to Vertex Color Channel
- Enter 1.0,0.0,0.0 as the mapping value – this is red color.
- Move the 3ds Max time slider to frame 50, enable AutoKey and set the Y (Green) to 1.0.
- Check the Show Map In Viewport option.
- Select the FROST object, right-click, select Object Properties and check “Vertex Channel Display”, set the drop-down list to Vertex Color and check the Shaded button.
RESULT: The FROST object will show red colors where the particles are young and yellow where they are scaled down to 0.0 at age of 50.
To render the FROST object and show the animated vertex colors in the renderer of your choice, you must add a Vertex Color Map to the FROST object’s material!