DX11 particles trails to mesh?


#1

Hello again vvvvlers,

I’m getting into dx11 particles and it’s amazing. In the showreel there are two examples which have mesh trails following the path of the particles.

I’m fighting the whole day with it, but can’t find the one hint that I need. These two posts (1, 2) look like what I need, but particle count is changing always, so unfortunately I can’t use them (or maybe yes?). It looks like I just missing the right node to solve the problem.

Best regards
neoshaman


#2

Both clip-examples have a constant particle-count. All the needed particles are emitted in the first frame and start their journey from this point.

Here is the Instance-Noodles-Example of the DX11.Particle pack (dx11.particles\girlpower\Examples\InstanceNoodles):
InstanceNoodlesExample_with_splines.v4p (52.6 KB)

I’ve added the SplineBuffer module of the InstanceNoodles. In case you do not see anything, switch the technique once from tube to something else.

There are workarounds, to solve the respawing-problem with splines. For example you could scale all the spline-segments to zero, which have a certain Age. Or a bigger distance to their next segment , because they are jumping to the Emitter-start. But this would mean tweaking the shader-code of the Spline-Bufffer…


#3

Hey, thanks for the sketch. Unfortunately I have some red nodes in my InstanceNoodles.

ScaleFade
AttributeBufferFixedSize > Tools_StaticAttributeBuffer_Skeleton & Info

Still try to resolve the problem.
Can’t see the result, I’ll try to rebuild it but it seems kind of complicated. Do you have a simplified version maybe?

Cheers


#4

have you installed
https://vvvv.org/contribution/dx11.particles

and

https://vvvv.org/contribution/instance-noodles

by copying those contributions in your pack folder? you will need both to run the example.


#5

ah, and you have to use one of the latest alphas. had some problems with the dx11 + dx11.particles and latest beta.


#6

ScaleFade was renamed to ColorByLifetime and I forgot to update the girlpower patch. Should work if you download the latest version on github. I will add zip files of the latest version to the contributions page in the next couple of days, too.

Please upload the patch you have problems with. Makes it easier to help you ;)


#7

latest version of particles is available on contributions page now.


#8

I just had similar issues combining DX11.Particles and SplineBuffered. If anyone else has troubles with this in future here’s what helped me:

-Note the AsAttributeBuffer nodes have to be the Fixed-Size version.
Otherwise Verlet will not be happy and act as if the spread is being constantly resized.

-As suggested above scaling the splines to 0 at the end of their life is a good way to get rid of them elegantly.

If you want to do constant emission then there are a couple of workarounds.

-You have to keep the particle count maxed as instancenoodles expects fixed spreadcounts. It’s possible to do that with constant emission if the particles live long enough…EG If your particlecount is set to 1000, you emit 5 particles a frame and your framerate is 30 fps than you need a lifetime greater than 6.6 seconds. This ensures your particles live long enough that all of them get spawned and when they die they are replaced instantly, keeping the total particle count at max. (To check the number of alive particles create an empty DX11.particles selection node and put it in the particle system. Give it a name. Then use a DX11.particles count node underneath the system and it should give you a total particle count.). You can always arrange to scale them to 0 if they get to a point you don’t want to see them anymore.

-To prevent seeing tails when the splines are reset you can either scale from 0 at birth or create a reset buffer for Verlet. This will give a high value when particles are spawned, preventing splines drawing tails back to the emitter location.


#9

One more thing. If you have multiple particle systems in your patch give them unique names otherwise the particle counts will be messed up by emitters elsewhere.