Particle Paint

Description :

A Particle Paint procedural texture,
original idea from Kevin Phillips.

Usage :

-Add as color channel or any texture channel you want.
-Select a PFX Emitter and set "Max Particle" number for memory buffer.
-Open Viper, press F9 to get object data, and use Viper preview to tweak & test.

-Currently you don't need PFX Collision, Particle Paint must detect the presence
of a particle when it comes near the mesh, to paint a shape on the object surface,
for actual frame and to keep this information for next frame evaluations.

-"Effect Radius" or half particle size (PFX "Buffer" option) is also the minimal distance
for impact detection, so for fast particle, a Collision object with "Stick" option can help
to detect all particles on the object surface (don't forget to calculate dynamics before rendering).

-With "Stick Contact" checked, Particle impact position is freezed on first contact frame,
this is usefull to fix effect on geometry which is not perpendicular to particle trajectory.

-"Fuzzy Edge" doesn't work with Ripples and "Thick-Ring" needs a little value.
-"Noise Frequence" is for "Noisy Blob", "Wave Frequence" for Ripples.
-Ripples can be animated with "Stretching" per frame parameter.
-If you check "Dissolve", positive "Duration" is for dissolve-out and negative for dissolve-in effect.

-"Stretch Limit" is the maximum value for per frame "Stretching".
-"Y Stretching" is a fake gravity effect, for normal gravity use a negative value.
For droplet shape, it tries to maintain volume so it is thus closer
to a translation effect.

-You can also colorize (un-blended and separate !) particles with this procedural,
in Hypervoxels surface texture color channel, add Particle Paint, select Emitter (you come from),
"HV-Surface" as "Color Mode", "Effect Radius" must be set to the half size of particle.

Particle Paint limitations :

-It works only for positives frames (above 0).
-Because all previous frame must have been evaluated before rendering,
you need to start rendering a sequence on first frame and go on for each frame with
same memory buffer, so you can't use this plugin in a network with screamernet.
-To reinit Particle Paint buffer, place the cursor at Frame 0 on the timeline.
-You may have bad Particle detection, if textured object is resized in layout and procedural set
to texture coordinates; "World Coordinate" could solve this, but Particle Paint effect
could not follow object, if you want to move or rotate it.