TurbulenceFD Depth Pass Using Cinema 4D

Free script to aid in creating a depth pass for smoke simulations

Creating a depth pass for a smoke simulation should be a simple task you might think. In most cases with professional softwares it can be, but not all softwares support this feature. In this particular case it is the Fire and Smoke simulation plugin TurbulenceFD(TFD). I am a huge fan of this plugin and have been able to get some really great results from it. You can see some of those experiments over on my Vimeo channel. Recently I was creating some stock footage of smoke plumes for in-house use and had the need for a depth pass as well. Remembering back to a two year old post on the Jawset forums asking about TFD depth passes and being told it wasn’t available, I set out to find a work around. The science behind why a native depth pass cannot be created makes sense to me, but it would be nice to as least get something for the base fluid object as if it was a solid form. Essentially the limitation is on C4D’s end I believe (no facts to back that up), because it cannot export Deep Pass files. There is a nice visual explanation of Deep Opacity maps here. So I needed to find another way to cheat it. I started messing around with placing my smoke in fog volumes, messed with custom proximity shaders, and then one day simply tried an area light. I know, it sounds so obvious now in hindsight. This is what happens when you work on multiple things simultaneously for long periods of time, your mind goes down rabbit holes and gets stuck on a path sometimes. So after fiddling about with the area light, I was starting to get some results. Shortly there after I was starting on a Python script to help make it a one click application.

This video shows how it works and some of the quirks with it. The script is also open, so you can not only view, but also modify as well. Included is also a icon file, for those who like to dock the script in your UI.

Download the ZIP file here:



I noticed while using this script in R16 that it refused to work, but after altering an if statement’s formatting it seemed to work again. Not sure the reason or cause of that issue, but if you have trouble running the v2 script, then try the v3. I named them as R14 and R16 only because I have tested them in those versions, but they might work in newer or older versions of Cinema 4D possibly.

Was This Post Helpful:

0 votes, 0 avg. rating

David Torno

David Torno is a Visual Effects professional based in Los Angeles, California. His work over the years has included commercials, feature films, music videos, and multimedia projects. During his free time, David enjoys expanding his knowledge in Visual Effects by learning new softwares and techniques that are being used. Along the way he also contributes to the visual effects community by offering helpful tools, and tutorials that creative professionals around the world can benefit from.

Leave a Reply

3 Comments on "TurbulenceFD Depth Pass Using Cinema 4D"

Notify of
Sort by:   newest | oldest | most voted

Hi David, fantastic presentation, extremely easy to follow. I am, however, having issues duplicating your results. I suspect it’s because either of a missing checkbox(ha), or my differences in versions for my TFD/C4D. May I ask for your basic project file? If you would oblige, I would be very appreciative. [email protected]


David Torno
David Torno

Hi J, try to download the v3 script and see if that works any better for you. I just added it to the article a moment ago. I had issues in R16 when trying to run the original v2 script and it seemed like it was due to an if statement. Not sure why.

Hi David, first off, appreciate your quick response! As an FYI, I have recently patched (a couple weeks ago?) my C4D r17, and also found the null check not working on your GetCamera() function. I omitted the check and it properly returns the appropriate object now. Just an FYI. My version: def GetCamera(doc): bd = doc.GetRenderBaseDraw() cp = bd.GetSceneCamera(doc) return cp Anyways, my issue remains the same, I cannot get it to render greyscale. Are you using specific render settings? Can you share with me these settings please? It renders the full colour version, for current frame. cheers, John