[AddOn] bTrace 1.1 - updated 03-21-12

Made some progress on the animated portion.

Here is an emitter plane with 4 particles being traced. I was able to eliminate another object, the Empty, from the proposed original setup.

Only two additional objects per particle are needed. The Curve, which Liero’s code generates and the Taper Curve for Liero’s curve generated in the code posted above. There is no need to track an empty, the percent along path can be derived by analyzing the current frame, the lifetime of the particle and the birth time of the particle.

Presently the code is in a one-shot state. So I can generate a curve set and playback the tracers. Animated tail and slopes also work.

I am not exactly sure how regeneration should occur? By regeneration I mean when the particle system changes. Say you have a particle system, and you generate a set of tracer curves. Then you add another field to the system. This field changes the path of the particles, but the tracer curves remain the same. So regeneration must occur for the tracer curves to re-synch to the particle system

Presently the system generates a curve set when you rewind to frame #1. But this is a time consuming process. A noticeable delay does occur. (even with ony 4 particles)

How would all of you like it to work?

Any tips on detecting if a particle system has changed?

Attachments



Here is the fist video with my alpha version I call AtomicTrace.

https://vimeo.com/22550060

Love this work, keep it up guys.
Can we work in a connect all objects for the particles? So instead of tracing the partiles path it connects all the particles to each other?

@Atom,
AtomTrace looks amazing!!! I was away for a bit on a road trip and am only now seeing your updates. Great work on taking this and not only running with it, but attaching a freakin’ rocket to it!

I’d love to see how you put that together, you asked how to check to see if a particle system has changed. Would you be able to check to see if the particle cache has been updated? I’ll try to see if I can’t find anything on how that works. Or when you say the system has changed, do you mean tracking the finer details of the particles/emitted/lifetime settings? Sorry if you’ve already looked into this stuff.

I basically gave up detecting if a particle system has changed. I managed to simply cache the curve solution from the initial generation and that gives decent playback on my dual 2.5 ghz. This is critical for rendering because you can not actually issue frame_set while rendering. It simply does not work. So re-synch becomes a manual task for the scene operator (similar to baking). If you make a significant change to the particles, you have to enable the regeneration flag and simply rewind. Then a new curve set is generated and a new cache for the tracers as well.

I have been coding away on the Particle Tracer AddOn for Blender 2.5.7.

https://vimeo.com/23214233

This video, while not a work of art, does demonstrate some of the new additions to the code base. Support for tracing multiple particle systems is working. A revised Update/Generate approach allows for higher FPS playback than the initial code. Supports four different curve types. These types represent the enum values for a curve handle [‘FREE’, ‘AUTO’, ‘VECTOR’, ‘ALIGNED’]. A revised slope in/out concept allows for a new feature called tracer offset. Using tracer offset you can preceed or lag behind a particle. Each tracer can be enabled or disabled at any time effectively freeze-framing the current state of that trace. The generation vs. update code has been “smartified”. Now the AddOn can simply detect when the particle system has changed or the parameters of the Addon have changed and simply re-generate the tracers as needed.

cool examples :smiley:

Nice work Atom!

Excellent, I wonder if this can be used to make a cable going between support pillars/objects

That particle trace feature is so damn’ useful ! I can see endless possibilities for this.
Would love to see it in the addons_contrib repository so that it will be kept up-to-date automatically.

so the download page on github is dated on april 14 2011

but Atom had an update in may. SO… is the repo the latest? or has this code been integrated into something else? curious.

You might check with Atom, the github is my repository that I used when I was tinkering with this. Not sure where the code is, but Atom definitely improved the code from what was at the repo (which was my personal development staging).

Also looking for a newer version. Right now the one in github doesn’t work in 2.60 for me.

A few api changes broke it, but was easy enough to fix.

I updated the version at the repository here: https://github.com/scottjwood/bTrace (same as first post)

I didn’t test this significantly, so if you run into any other bugs just let me know.

Thank you for that! it is much appreciated.

Looks like it might be broken again, Running Blender 2.60.4 r41822.
Thanks

Just tested on 41936 it works just fine.

It’s really helpful if you actually tell me the error you’re having other than “it’s broken again”. No problem on my end.

My bad, I’m sure it’s user error, I’ve tried to install it via the addon menu and adding it into the addons folder in blender. But it’s not showing up in the addon menu. I’m not seeing an error when I try and install it, when I install from the addons install menu in user performances it seems like it works, but I do a search for btrace and nothing shows up. Again I’m sure I forgetting something simple, that’s usually the case with me.

No worries, thanks for letting me know it’s not working! Try opening the script in your text window and run it from there and see if you have any issues that way. It could be the way the add-on is setup, I’ll look into that.

Ok ran it from the text block and then this error comes up. Still doesn’t show up in menu.