Particle Advection Affects All XP Emitters


I’m working with TFD Particle Advection with X-Particles, and I was wondering if there’s a way to tell TFD to only affect a particular Emitter, instead of all of them? Similar to Explosia FX with Groups.



Is there any way to get XP to pass to TP groups ?

When you say TP do you mean Thinking Particles? If so I don’t know. Does Thinking Particles have a setting where if you have multiple emitters you can choose which to affect?

With TP you can have TP groups and TFD can work on a which group basis so each emitter would emit into a particular group

How does the setup work? I have your tutorials, I haven’t watched them all yet, but is that process in the tuts?

Note sure…one of my hard drives has died and I cannot cehck the files !!. But basically : Thinking Particles can be affected by any value or velocity in a fluid container via the two XPresso nodes that TFD provides. The GetFluidData node (found in System Operators > XPresso > TurbulenceFD) allows you to read values from any fluid channel at a given position. It has two mandatory input ports. The first is the Volume Object and the second is the position at which you want to read the values from. For each fluid channel there is an output port that will hold the corresponding value.

The PFluid node (found in System Operators > Thinking Particles > TurbulenceFD) is a modifier node, similar to PGravity, that moves particles along with the flow. Like the GetFluidData node it requires you to specify a Volume Object that will provide the velocity field of the flow. Send your particles to the Particle input port, for example with a PPass node. When the particles pass through the Volume Object, their trajectories will be affected by the fluid flow. Optionally you can use the Velocity Scale input port to adjust how strong effect on the particles’ velocities will be.


Thankk you but I saw that tutorial, it only shows you hot to advect particles, but not stop it from advecting other particle gorups in XP.

I’m taking a look now. I’m in the Xpresso Node, and I found a way to get the X-Particles Properties into Xpresso.

PFluid has 2 Inputs. Volume Object & Particle. I plugged the container into the Volume Object, however, nothing is plugging into the Particle Input.

Have a look in the example file temperatureparticles.c4d

Yeah I’m taking a look at it now, scratching my head, haha! I also found your tutorial. I’m trying to translate that method to X-Particles, but no luck. And the Insydium Fourm is dead, and their Discord Chat is childish, no help what so ever.

Out of all of the examples I’ve seen, everyone has used Turbulence FD Advection with X-Particles in a straight forward approach; meaning, that the X-Particles Emitters they use, they intend to Advect, but never had a project where didn’t want to advect certain X-Particle Emitter Groups.

One method that I tried to do was use Explosia FX to Advect the particles, and TFD with only the smoke. The problem with that is the fluids are way different, and don’t match.

In the temperature example you will see that TP Groups use PPASS to the TFD node. It works on a by group basis so just get your xparticles into different TP groups

Thank you, I’ll give it a shot.

But the main issue is telling TFD not to Advect Particles. If I get this setup working, will it only Advect the particles I set up, and leave the other Emitters alone?

PPASS works on a per group basis…read the manual on Thinking Particles

Thanks @Paul_Selhi , I’ll be sure to read up on that, but for now, I came up with an easier solution for X-Particle Users. Workflow’s below:

Advecting X-Particles in Turbulence FD is pretty straight forward.

However, if you want Turbulence FD to advect only certain Particle Emitters in a scene…it can not. Or at least not without a great knowledge of XPresso, and right now I haven’t learned that yet.

The work around that I came up with, is this:

First, before Caching the Turbulence FD Simulation, go to Simulation > Velocity, and Set “Particle Velocity Scale” to 100%. Then go to Container and check in Velocity. Now your simulation is ready to Cache.

When done, the Particles in your scene will be advected by your TFD simulation. However, lets say you have 2 Emitters, A & B, and you only want to Advect Emitter A.

Well first, check off Emitter B, so TFD will only Advect Emitter A. Now Add a X-Particles Cache, and under Cache go to Inclusion, set the Mode to “Include”, and drag Emitter A in the list. Now go to Object, then Build Cache. When complete, Emitter A’s movement is baked in, so now you can turn off the TFD container and the motion will still work.

That being said, go to your TFD container, check off Velocity and set the Particle Velocity Scale to 0, then Cache your simulation.

After its done, you will now see that if you check Emitter B on, Emitter A, and your new Cached TFD Simulation with Velocity checked off, the new TFD cache Simulation isn’t advecting Emitter B, and Emitter A’s TFD motion is still baked in. So, now you can delete the TFD Cache with velocity, since it takes up so much space anyway.

If you want to Bake Emitter B’s Motion, you can Add a Cache Object, and drag Emitter B into the Inclusion list, and press Build Cache.

The only draw back to this workflow, is that for your TFD Simulation, you have to Cache twice, one with Velocity on, and the other with Velocity off. And for any changes, you have to keep caching twice.

1 Like

I’ve updated the workflow to a super easy one, please ignore the workflow above and refer to this link:

1 Like