orientation multiplication

Hi, I made an swarm of particles and need to adjust the rotation over kcm and have trouble to handle the orientation. Attached are two version I tryed to modify the orientation. But never get any feedback.
In my case the particles have already the right spin but not fast enough. So I would try to multiply the orientation. But I’m not shure what the orientation channel exactly is. So maybe I have a logical issue here. Maybe anyone can help here? If its not possible I would try to create a new orientation by velocity, how to build that?


I don’t think you can do that.

The Orientation channel stores a Quaternion. It is equivalent to the rotation part of the transformation matrix of the particle.
So it gives you exactly how the particle is oriented (you can extract the X, Y and Z axes), but it does not give you any idea how it spins (because this requires knowledge of the previous frames, and Magma is history-independent at the moment).

If you had a channel that described the orientation of your particle on the first frame, and the spinning was about a fixed axis (which is rarely the case), and you wanted to produce a continuous rotation about that axis, you could use the current time via a Script and produce a new Orientation channel from an AngleAxis value.

But even with the default Rotation (Random 3D) and Spin (Random 3D) operators in a PFlow, you cannot make any changes to the speed of spinning with the data you have in each PRT frame.

Thats not what I wanted to hear. :wink: Anyway, then I have to recache that system with new spin settings. Thanks for reply.

Is the spin random or otherwise independent of other parameters not stored in the PRT file? I’m wondering if it wouldn’t just be enough to re-synthesize some rotation in the KCM with controllable parameters. Like if you had a texture with “random” RGB where the Ywas the particle ID or some other means of assigning to the particle and the X was time, you could scale the X lookup coordinate to affect the speed of the spin. The trick is what the “random” really is. Like do you want a cycle where say the red channel is just sin(x)? Or do you want some sort of turbulent image, perhaps blurring some channels? There’s a lot you can play around with using this technique.

EDIT: It’s also possible to EXTRACT the existing orientation and resample it, if the spin is in fact not random, but bear in mind that if you make it faster, you’ll run out of orientation data if nothing else gets faster. Perhaps you could figure out how to sythesize something from the existing spin data?