Those floaty specks
Making animated ambient particles for DOF effects
Ever seen a beautiful render with a bunch of little “dust bits” floating around in the air?
Classy dust bits. (Screen capture from the viewport)
They’re great for adding a sense of atmosphere to a scene. Helps it feel more realistic, somehow.
It’s best when the particles are really there, in 3D. If you just overlay them on top, they won’t pass behind objects in the scene and they’ll just look fake.
I found a super easy way to make these with Geometry Nodes.
First, have a look at what we’re going to make, then I’ll explain it all.
The final nodes. Keep reading to learn what’s going on.
View The Specks
Before we add any actual geometry, we need to scatter points all over the place.
There’s a few different ways to get some points to start out with, but I’ve found that a great trick is to add an Icosphere node, then a Mesh To Points node.
You can adjust the Subdivisions on the Icosphere to control how many points there are. I went with 3 subdivisions, because I didn’t need too many points.
Once you have the points, the next step is to offset their positions using a Noise Texture.
You’ll do that with a Set Position node.
First, add a Noise Texture. So far, so good.
We’ll use the Color output, since it gives us 3 values: red, green, and blue. These will control the X, Y, and Z positions of the points.
But there’s a problem: the Color values come in a range between 0 and 1. Which won’t give us any negative numbers, and our points won’t ever be offset in the negative direction.
To fix that, we’ll subtract 0.5 from the Color values. Add a Vector Math node set to Subtract, and plug the Color into the top socket. Type 0.5 into all three bottom values.
Next we need some control over the strength of the noise, so let’s add a Scale node. Simply duplicate your Subtract node, then set it to Scale.
This simply multiples the noise by a value you type in.
Add a Set Position node, now, and plug in the points. Connect the Scale node to the Offset input. (see picture if you’re confused ↑)
The noise is still fixed, unmoving.
Let’s fix that. Switch your noise to 4D mode, so you get the additional W value (great for animating.) Grab a Scene Time node and plug the Frame output into a Math node set to Divide.
Plug that into the W on the Noise.
Here’s what that does:
The Scene Time > Frame gives you the current frame number.
This number is too big, so you divide this by another number (try 100) to make it smaller. If you didn’t do this, the animation would be way too fast.
That gets plugged into the W value. So the current frame number is controlling the noise.
Hit play and watch your points dance. This is a good time to fine-tune the noise settings:
Vector Math > Scale node: 30
Worked well for me at least. Have fun messing around.
View The Specks
Now we have dancing points, which are nice, but can’t be rendered. (Ok, Cycles can render those now. But I’m in Eevee.)
At the end, add an Instance On Points node so we can copy a real mesh to each point. Plug in an Icosphere for the mesh (you can add a Set Shade Smooth if you like.)
I had to turn my Icosphere’s Scale down to 0.04 and the subdivisions up to 2. Tweak these to fit your scene.
You’re done now. You have the dust.
You can make them tiny, like rally small dust, for a very subtle effect. Or you can make them bigger, and adjust your camera’s Depth Of Field settings to make them out-of-focus.
I just like to let them float around and be in focus when they want. Sometimes, I make a slightly see-through material for them, so they’re less obvious.
It’ll be different depending on your lighting, compositing, lens, etc. So try different settings and combinations until it looks awesome.
Then take a crude screen video and export a horribly compressed GIF to share with your friends.
You just learned:
How to make a blob of points
How to scatter them all over the place
How to animate it
Sometime I’ll make a video version of this. I’ll let you know when.
For now, bug me with any questions by hitting reply. If you’re not reading this as an email, sign up to the newsletter then bug me by hitting reply.
(I reply to every reply I get. And maybe even reply to the replies to those replies. And possibly to the replies to the replies to the replies to the replies. But maybe not.)
Just 1 thing today: a truly beautiful low-poly deer by DonCrone. This is 7 years old, but still an amazing piece of art. It makes good use of “floaties.”
Can't think what to blend?
Try something white and clean. Anything from a hospital room to a coffee mug.
P.S. I write fiction on the side, if you like that kind of thing. I did the cover of this one in Blender:
Enjoy this newsletter? Please forward to a friend, it'll make my day. And theirs.
New to the newsletter? Join here (no pressure. But I really, really think you should click the button. Click the button. Click...the...button...) ↓