The Brief

We were approached by The Croc, a marketing agency who are just next door to us in London. They asked us if we could emulate the effect of light painting. Light painting effects look amazing, check out Patrick the Light Painter, he’s unbelievable at it: https://www.patrickthelightpainter.com/

But, the nature of the technique, with long camera exposure times, makes it difficult to create a video. You need a lot of post work, and sometimes that post work will leave artefacts which you can’t get rid of. Hence, we were asked to see if there was a way we could reproduce the effect in 3D.

We couldn’t find a road map for this technique online so had to work it out for ourselves. In the world of endless tutorials, we managed to find a technique that hadn’t been covered.
In the end we developed a workflow using used X-Particles & C4D, rendered with Krakatoa*.

*you don’t 100% need Krakatoa – the light FX can also be rendered using X-particles. Krakatoa does look better though.*

The Light FX – how we did it

For the full story we’ve created a Cinema 4D Light FX video tutorial.

The light effects were created using X-particles. The particles emit from an object, specifically the texture of that object, which itself is moving along a spline. The emitted particles have zero velocity, so they stay where they are in space. The lifespan of the particles was set to around 30F. For the object textures we used gradients in the colour channel. Where the colour in the gradient was set to black the particles don’t emit. This is how we created the streaky effects and the colour gradient sweeps.

We added a vibrate tag on the objects emitting particles so that whilst the swept through the length of the spline they rotated and scaled in an organic looking way. This creates the nice crossovers as the light FX add on top of each other and emulates how light painters create their images when they do this ‘in camera’.

Krakatoa

We rendered the particles using Krakatoa. It does a great job at smoothing out the look. We used the ‘force additive mode’ and density values of around 3×10-3. We added a Krakatoa mesh tag to the text geometry so that Krakatoa only rendered the particles that you can see.

In most of the scenes the particle count was 2 million per sweep. We usually had 6 sweeping light effects in each scene so around 12 million particles created per scene. But for compositing reasons we rendered each sweep individually – this meant in post we could retime the sweeps as much as we wanted.

Another thing we had to do to make sure the sweeps came out looking smooth was bump up the frame rates. We were using anything between 60-90FPS depending on how much we thought we wanted to be able to slow down the sweeps in post. Using frame rates of 30FPS or below gave hard lines of interpolation as the object moved along its curved spline. Even using the subframe sampling in x-particles did not solve this. Upping the frame rate was the only way.

Faking the light – Octane

We were using octane to render the rest of the scene but one problem we faced is with Krakatoa you can’t get the light FX to light and affect the geometry in the scene. Doesn’t matter what renderer you decide to use it won’t be able to use that light sweep data as a light source. You can get X-particle shader to talk with the C4D standard renderer, but it doesn’t look great. We had to come up with a way of faking it.

To do this we took each light sweep and dropped the particle count down to around 1,000-2,000 particles per second. We then skinned them using the XP skinner object. This created geometry which we could turn into a light source. We hid that light source from the camera using an Octane object tag. This gave us a pass of the 3D object and the scene getting lit up which we could composite with the light effects over the top.

We could only light the sweep geometry in one colour so if we had a sweep with a complicated gradient we had to use colours that we an approximation.
We spoke with the good people at Krakatoa and it’s something they’re working on so no doubt in the future there might not be a need to fake it.