pflow coloring tutorial

Particle colors | part 2

In the first Particle coloring part, we looked through the simplest coloring methods. This time let’s try something more advanced.


As particles move, mapping coordinations get completely lost. So the best way is to lock them or inherit from right object. This can be done with Mapping Object operator:


Blending two predefined colors by checking if particles are inside proxy object (Sphere002). If the condition is positive, then that particle get one color value to the vertex color channel. If not, another color input value goes through the flow without any interpolation.

Also, keep in mind that suboperator New In Event is designed to take the initial value on the event entry only. It should be connected with flow output or proxy geometry input.

Above method isn’t recommended while colors are generated inside the flow. It’s always better to have colors in a map and in particles to set required mapping:

Same can be done with particles from another system:

Also, we can blend colors by taking material ID from multisub material:


Here is an example of how to set mapping by Particle Age. Just Divide Particle Age with a Lifespan, but don’t forget that Lifespan channel requires data particles dying time, so Delete operator should be added to the particle flow. Alternatively, Lifespan value can be set in a data flow.


Example of how to use particle speed in a data flow. In the second operator also particle scale is changed according to the velocity.

Here is a more advanced 3dsmax scene where particles are colored by their speed and distance to the red spheres.

The scene is simple enough: particles are driven by FumeFX fluids. Then mapping by velocity is mixed with mapping by the distance to red spheres. Also, a scale is changed by particles Velocity.


Particles mapping&coloring also can be done with Krakatoa and Frost plugins. Saved particles as PRT, can be modified through magma flow with geometries added in Frosts Custom Geometry mode. Frost by default inherits input particles mapping info as vertex color.

  1. Thanks for sharing this awesome stuff. I’ve a quick question regarding the Frost bit.. I tried making a material with Vertex Color in diffuse slot as you instructed. I get a missing map co-ordinate message (UVW1 on frost) when I render and then nothing. I’ve tried lots of things.. adding a mapping operator in PFlow, all the different pull downs on Frost’s ‘material’ menu, and changing various channels in the material and the PFlow operator. The only way I can get the Frost to show any material is to add a UVW map modifier on channel 1 (e.g. planer) – but then I get a different gradient colours (like a literal translation of the vertex color map) instead of my Particle Age colours.

    If you could give slightly more info on how to set up this Frost/Vertex Color/Mapping prodecure, I would be very grateful!

    Thanks πŸ™‚

    1. This happens because visible particle colors is something different than Vertex Color channel. Depends on your setup and needs, but easiest method will be to export particles to PRT format. In Krakatoa don’t forget to export Color channel. In this way you also have all Magma tools to manipulate Color channel in PRT Loader.

      Another way will be to set up particles color information with #Box3. Drop Data operator, inside connect Color suboperator and Output Standart (pick Vertex Color here). Vuala! It should work. Let me know if you sill have problems.

  2. Hey, thanks for getting back to me! I’m still having trouble πŸ™

    I was hoping to do it without Krakatoa as I’m not too hot on Magma flow. I tried using the Data Operator as you described, but it just colours my Frost with whatever RGB value is in the Colour node of the Data Operator.

    With your example (Wave03_05) did you krakatoa/magma workflow? Thanks again for helping out here πŸ™‚

    1. If you use material to color particles, you can try to assign same material to Frost. Is it works now? πŸ™‚

  3. bro,i nned your subscription ;),Thankks for this stuffs…Keep on doing great stuffs…

  4. LOVE your site!!! Great work πŸ™‚
    However “advanced scene” crashes max 2014 on loading πŸ™
    Maybe too many polygons?

    1. Hi Peter,
      sorry about that, works perfectly here. Scene is saved with Pflow system turned off, so there is no polygons on loading. After opening 3dsmax scene, fumefx grid should be simulated, then you can turn on pflow and check if it works with all #box3 operators or without them.
      Maybe software updates will help, i’m using 3dsmax 2014 SP3, Fumefx 3.5.4, Vray 2.40.4

  5. Great stuff, dude. but any idea what changed 3ds max 2017 that prevents your files from working? Cheers.

    1. No idea. Autodesk changed a lot in 3dsmax 2017, but DataOperators wasn’t touched yet, so probably at some point they will figure it out. I highly recommend write it in right forums, area or autoesk support.

  6. I downloaded and had at the files you shared, thanks for that! They look just fine in max 2014, although most color changes seem to be only applied on “absolute” age. But in Max 2017, with your data operators turned on no geometry is emitted.


Your email address will not be published. Required fields are marked *