View Full Version : covering geometry in particles?

 Ironhalo03 March 2008, 04:41 PMi'm trying to cover a piece of geometry in particles, but i need it to happen in a somewhat even fashion. currently, im using: goalU = rand(0,1); goalV = rand(0,1); it works, but i end up with a rediculous amount of particles to achieve the desired coverage. i know theres a better way... any ideas?
zoo-prod
03 March 2008, 10:40 PM
Hi,

First, do you want that your particles comme from somewhere and then stick to your geometry or does it have to be allready on the object ?

If it have to be allready on the object, you could simply emit particle from your object, then set the emitter type as "surface".
Go in your particle attributes. Add these Dynamics attributes : goalU, goalV, parentU, ParentV.
then create expression :
goalU=parentU;
goalV=parentV;

Your particles are emited randomly on the surface. Put a max amount of particles, set the initial state. That's it.
After that you can do whatever you want like particles falling when it collide with something or randomly, etc...

Ironhalo
03 March 2008, 10:59 PM
thanks for the reply. originally i simply goaled a particle shape to the poly surface, but emitting from the surface and setting the Conserve to 0 produced better results. however, im hoping on finding a way to cover the surface with less overlap. i'll be instancing geometry and i want to keep penetration to a minimum.

zoo-prod
03 March 2008, 11:23 PM
You're welcome !
Ok, to avoid this overlapping, you can try to adjust the min/max distances of emission.
Go in the emitter attribute and set Max and Min Distance to the right size.
For exemple if your instanced geometries are sphere with a 0.2 radius, then set this distances to 0.2 and it will be exacly on the surface (it will be a bit harder with more complex shapes)

axiomatic
03 March 2008, 05:21 AM
If you're dealing with a plane then you could use Particles > Particle Tool > make sure "Create particle grid" is on. If you're object's more complex you might see if making the object Live and then painting a grid on it works ... if not you could dupe the geometry and turn it into a softbody (might need to increase resolution first w/ smooth etc) then disconnect the particles from the geom - that'll give vertices -> particles.

Ironhalo
03 March 2008, 03:00 PM
thanks for the suggestions! ill try both of them and see what i can get. im also thinking of attaching a radial field to each particle and setting it up that way..

what i'd really like to develop would be a way to have complete control over where the particles are in a uv space... now all i have to do is make sure the particles stick when the shape moves.

rxgeez
03 March 2008, 01:12 AM
I have a setup up that will emit particles from a nurbs surface based on a texture or ramp. The particles are goaled to the surface. All the particles will move away from each other but only within the texture. This way you can cover only the areas you want and they will spread apart to get full coverage.

This setup is from a bigger scene ive been working on. Ive been trying to get particles to mimic a lot of the things massive crowds do...like proximity detection, follow locator, flow based on a texture, things like that. I think the proximity thing might be what youre looking for. Heres the scene with that setup...it might help.

To adjust how close the particles get to each other before pushing them away you can adjust the max distance on the radial field under the particles. Also most of the numbers in the expressions and on the radial field are dependent on the scene scale. After the particles are emitted and spread out like you want...you can freeze thier initial state and delete the runtime expressions and the kill you the emitter.

-k

Ironhalo
03 March 2008, 04:15 PM
thanks a lot for posting that scene! i'm going to take a closer look at it and see what i can figure out.

CGTalk Moderation
03 March 2008, 04:15 PM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.

1