Particle origin

Sorry for this hopefully dumb and basic question, but how do I get particles to emit from center of a primitive face rather than from the verticies?

Particles (assuming Particle SOP here) are emitted from the points of geometry. So you can scale down your geometry tiny so it ‘seems’ like the center, or you could use an Add SOP to create a bunch of points a that location. The Add SOP method will not have the same normal direction on the points however, so scaling down is better if you want the particles emitted in a certain direction (they are emitted in the direction of the point normals).

Okay, that was what I was afraid of. Fortunately, I’m just working with simple, low division cubes right now for emitters, so I can scale and rotate them to get to approximately right places.


Oh sorry, I thought you said ‘primitive’, I didn’t notice you wanted ‘primitive face’. That is more difficult. I came up with a little hack, but instead of a single point in the center of each primitive, you will end up with the number of points the primitive had in the center ie. 3 for a triangle, 4 for a quad. This might work well for particle emission however, you just have more emitters so you can control the rate with the Birth parameter.

The trick is to first use a Facet SOP to create Unique Points for each primitive, then use a Primitive SOP and scale down the primitive. If you set Scale = 0 they will all sit at the center of the primitive. See attached example, I left the scales a bit above 0.0 so you can see what’s going on.

pointsInPrimitiveCenter.1.toe (3.8 KB)

You could also do it with a Script SOP if you want to get into the math and scripting of it, but that doesn’t sound fun (unless your into that sort of thing!). Other 3D modeling packages might be able to do this easily and then you could import it to TouchDesigner, but that would assume your geometry is static.

you could append another facet SOP (set to consolidate points ) to the prim SOP. This will get rid of the extra points.

Ah of course! That would make it exactly 1 center point per primitive.

Hey guys, thanks, this seems to have gotten a result close to what I was looking for.
However, the Primitive SOP is causing weird things to happen.

The particles emitted behave completely differently whether it’s enabled or bypassed.
I used DoTransform and reduced the scale in PrimitveSOP, but it seems to make the particles emitted later to ignore the birth rates and forces.

Is this a bug or did I do something wrong?
I included a sample example below.

spitBox.toe (5.6 KB)

You can also use subdivide Sop to create a point at the center of each face and delete using bouding sphere to only keep the center points

You can also use add Sop to create individual points and point Sop to create normal for each point

Here is a quick test with the two propositions
centerPart.toe (6.5 KB)