How do I do this kind of effect on a procedural ice material? I'm trying to do it as a transition on my ICE material, Most of the videos that i found about dissolve effects are for principled BSDF materials. Is there an alternative way of doing this kind of effect other than texture effect?

What effect I want to make

enter image description here

What the material is set up like enter image description here

A dissolve effect I found enter image description here

before enter image description here

after-ice material enter image description here

  • $\begingroup$ how does your object look like for the moment and what are material 1 and material 2? $\endgroup$
    – moonboots
    Commented Jan 26 at 17:41
  • $\begingroup$ I have just uploaded some pictures of my scene. it's a car that probably has 9 materials, and my ice which is 3 materials $\endgroup$
    – Exoc0r3
    Commented Jan 26 at 18:17
  • $\begingroup$ try the "Build" modifier. $\endgroup$
    – james_t
    Commented Jan 26 at 20:29
  • $\begingroup$ do you know how i can direct the build modifier like how it is in the gif $\endgroup$
    – Exoc0r3
    Commented Jan 27 at 4:03

2 Answers 2


That can be an approach, not the best most likely:

enter image description here

This is just an example:

Go along a curve (with some randomness) and look if the mesh points are before or after this curve point.

If after, keep the mesh as it is.

If before, replace it or change its material.

Here I use the same mesh for both (but with duplication, still as example), but you can use another mesh if better for your use case.

enter image description here

(Blender 4.0)


Start with 3 things in your scene - The person mesh, a cube to be used as an "ice emitter" and some ice chunks in their own collection. Make sure to set the origin point of the cube to the bottom face, so when you scale it on the Z-axis in object mode (to animate), it simply makes it "grow upwards".


Select the cube and set a keyframe at the first frame for Scale. Go to halfway (default frame 125) and scale the cube on the Z-axis so the top goes over the person's head. Set a keyframe for scale and then move to the end frame (default 250). On the last frame, scale the cube back so the top face is below the person's feet again and set a final keyframe for scale. Now when you animate the timeline, you should see the box start at the feet, "grow" over the person's head, and then shrink again.


Select the person mesh and add a Vertex Group (I called it Iceman). Enter edit mode, select the whole mesh and assign the vertex group.


If you enter weight paint mode, your mesh should look like this (red). Add a Vertex Weight Proximity modifier. Set the Vertex Group to IceMan (or whatever you called your vertex group), and set the Target Object to your "emitter" cube. Change the Proximity Mode to Geometry, and for the geometry select Face. Change the Lowest to 1 and the Highest to 0 (this will make the mesh blue, and the influence area will get progressively red).


Now if you hide your emitter cube in the outliner and play the animation, you should see the weight paint change from largely blue to largely red as it animates. Don't worry about it not being completely red, it ends up not mattering much in my example at least, it just matters that it's no longer dark blue. If it's a problem, there are ways of fixing it such as scaling the cube on the Y axis before beginning so its faces are in closer proximity to the person mesh.


With the person mesh selected, go to the Geometry Nodes tab and add a new setup - Connect the geometry output to a distribute points on faces node, and increase the density so the mesh is fully covered. Add an instance on points node and add your ice collection as an instance (remember to check Separate Children, Reset Children and Pick Instance). This will place the "ice" on all of the distributed points.

Next, connect the second output from the Group Output to the selection input of the Distribute points on faces - this will make options pop up in the Geometry Nodes Modifier panel. Click on the red "swiss flag" to make an empty box appear. Click that empty box, and select your Vertex Group (IceMan for me).


If you play the animation at this point, you will see the ice start around the legs and move up to cover the whole (currently invisible) body and then go back down again. You can see from this how the proximity of the cube affects the "ice formation" - I started with a simple example - if you want the person to be "free" of ice to start and finish, it's simply a matter of moving the cube down for the first and last frames, and scaling larger for the middle keyframe. Remember to re-set the new keyframes if you choose to do this.

This is the base example - if you want to make the ice more interesting, you will need a few more nodes. I added the Capture Attribute node so I could capture the Face normal from the mesh before it became points (which have no normal) to use later (mainly helping with rotation). I added a Random value node to incorporate into both the scale and rotation of the "ice chunks" - be warned, there is no rhyme or reason to the setup I used for the scale - I was just testing things and it came out looking the most "icy" - happy accident I guess, but don't try to read my Vector Math node setup logically, because it it illogical - sometimes random things just work. Lastly, I added a join Geometry node, so both can be seen together.


If you need some quick "Ice chunks" I just added 6 Ico Spheres with subdivision level 1 and then scaled them each down by selecting 2 points and using Proportional Editing set to random. For the Material, I used this simple setup (but of course, use whatever you like).


Like I said, this is just an example, you will probably want to move the emitter box away from his feet at the beginning and end if you want him to have "no ice" at some points. You can also use whatever materials you need.


(Sorry about the crappy .gif - I had to compress the crap out of it in order to be able to upload).

Blend file is here -


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .