Emission/Absorption and Pflow?

With 1.1, we could send stuff into the color channel pretty easily with pflow. How should we output to the emission or absorption channels?

  • Chad

Good question.

If you want to write data per particle using Box #3, just write to some Mapping channel, then either put a Global KCM in Krakatoa to copy that data directly into the relevant channel, or save to PRT sequence and do the copying with a local KCM on the PRT Loader.

You could of course also add a Vertex Color Map to the Emission or Absorption Channel of a Krakatoa Material, assign that to the PFlow via a Material operator and your custom channel written to any of the 100 Mapping channels will end up in the correct Krakatoa channel. (I know you dislike this because it is slower, but it IS a workaround).

I am not sure if you could create a custom channel in Box #3 called “Absorption” and write to it (any channel available in PFlow would be saved / rendered if the name matches the ones we support). I will investigate.

Ah, forgot about the global KCM. Worth a look. The specific effect I was trying was to load in a prt with scatter, density, emission, and absorption and use box#3 to play with the sampling that to other particles. Eyeing the utility operator, but that doesn’t seem to reflect the new channels in 1.5. Would be nice to affect the specular channels too from pflow. Have a nice weekend, sorry for being such a tardy betatester.

Any ideas on doing the reverse? I have normals, density, and other channels in a PRT that I’m loading into a PRT Loader. I’d like to get those channels into PFlow, but the PRT Loader Update only shows ID, Position, and Color.

I tried being clever, and made copies of the PRT Loader, and for each copy add a KCM that outputs color. Use multiple KPRTLUpdate ops along with multiple Box#3 ops to copy the color to custom channels, but I’m thinking… Is there a better way?

  • Chad

You probably will need to use a KCM to copy the Density into MXSFloat, and the Normal into MXSVector, etc. The PRTLoader Update will only look for channels supported by PFlow.

As Darcy mentioned, you could copy your data into any supported PFlow channels (like the 99 Mapping Channels) and read these in a DataOp.
I just got the same question from Ian Farnsworth (who works for us now) and we tested this and it works great.

For example, I added a KCM to a PRT Loader, copied the Position channel multiplied by 0.01 into Mapping13.
Channel Mapping13 appeared on the KPRTLU list so I checked it there.
Then I added a DataOp and copied the Mapping13 to the Vertex Color Channel.
I set the PF Source properties to show the Vertex Colors in the viewport and got the data from the KCM through the DataOp into the particles’ color.

Yeah, that’s handling it just great. Thank you.

You guys are now holding the monopoly on max particle artists! :slight_smile: