Camera Projection onto Particles

Hello all. I’m currently working on a shot in which a man is running, and distorting the area behind him. So the idea is to use Krakatoa to project the color of the plane behind him onto particles. I’ve been going through the tutorial with the teapot, but there a few snags I’ve run into. Here is how I have it set up:

I have a fumeFX sim of smoke coming off of the character. It’s using an Object Source emitter and then I rendered those particles with Krakatoa and saved them.

I then loaded up PFlow and used a Krakatoa PRT Birth and Krakatoa PRT Update (My understanding is that allows the particles to follow him through the sequence, I could be wrong)

Then I have the 2 data operators from the tutorial. However I’m still only getting the renders of the pink dots of the particles, instead of the render of the picture on the image plane.

So my questions are:

Why do I have both pink particles from PFlow, and the grey krakatoa particles rendering, when only one of the loaders is set to renderable?

Would it be easier to emit particles from the character and use a particle source instead of using an object source?

The sequence is kind of Nightcrawlerish in a sense, so the smoke is moving and dissipating quickly, which makes me wonder if there isn’t a different way to approach it instead of using the method with a stationary object?

Any help is greatly appreciated!

Camera projection is tricky.
Over the years, we have shown several ways to do it.
Here is an overview of what you have to know, it might help you with your case.

Originaly, even before Krakatoa was released, we showed a demo of a Mini turning into particles. We used an in-house Camera Map texture that is still not available publicly (but with Thinkbox owning the code, it could be some day) which allows a pixel color to be locked based on a particle data channel representing the particle’s original position. So basically the particle would move in 3D space, but the Camera Map would still give it the color based on where it was before it started moving.

This same approach was then shown as a Box #3 / MAXScript example in the Krakatoa Tutorials section. It was quite convoluted, but it performed approximately the same as the original Camera Map (this was for an older version of Krakatoa, but is still kinda relevant)
thinkboxsoftware.com/krak-ca … particles/

Then I posted a Studio Monthly tutorial where the particle color was assigned to static particles which were then moved around using PFlow forces while preserving their original color. Also from an older Krakatoa version, but the idea is there:
studiodaily.com/main/reviews … 10691.html

Then I posted the example where particles are distributed on a plane and steal its color.
thinkboxsoftware.com/krak-im … -dissolve/

I am not sure what approach you are following, but you shouldn’t try to copy these but try to write down step by step what you are trying to achieve, then find the right combination of tools and PFlow operators to get there.

I personally would try to emit the particles from the moving object in PFlow and see if I can acquire the UVs or Color on the birth frame and keep it throughout the life of the particle without changes so it would stick to it until it dies…

Yeah I am trying to do that now. With some help from a co-worker. Funny thing is, I work for Prime Focus. I just never got a chance to meet you :stuck_out_tongue:. So I might even have that tool your referring to.

Anyway we re-organized the data flow, and the pflow. Now we have krak rendering particles from a fumefx birth. The problem was before none of the particles being birthed had an ID with them, so nothing could be assigned. I’m kind of making progress…I think.

Open the Material Editor and see of you have a “FF Camera Map”.
If you do, you can add a Script Operator or a Box #3 DataOp to your particles’ birth event and write the Position of the particle on the frame it gets born into any Mapping channel (say, UVW 2). Then enable the option in the FF Camera Map to use the mapping channel as position and load a bitmap map as sub-map to project. Done.