I have a complex scene that I would like to render with GPU enabled, is it possible to add a volumetric pass from a separate, CPU only, volumetric render?

(Volumetrics are not currently compatible with GPU renders in the latest 2.70 test builds).

  • 1
    $\begingroup$ I think you can do this with a renderlayer, but I'm not sure if you could get the effects of the volumes to render on other objects (shadows, etc) $\endgroup$
    – gandalf3
    Commented Feb 28, 2014 at 0:19
  • 2
    $\begingroup$ Also note that there is no good way to Z-combine a volume pass with anything else. Since each pixel in a volume pass has multiple/infinite depth values. $\endgroup$
    – Mike Pan
    Commented Feb 28, 2014 at 0:48
  • $\begingroup$ There is now experimental volume support on GPU, see blender.stackexchange.com/q/10984/599 $\endgroup$
    – gandalf3
    Commented Jul 19, 2014 at 0:39

2 Answers 2


In the current master branch as well as in the 2.8 branch, there are 2 new Volume passes. You can simply mix them with the other passes in add mode.

That said, there is a way to render a volume layer that allows you to separate the rendering process in 2 and gives you more artistic control in post-production. It consists of creating a separate scene in which all the objects become holdouts, thus generating a "Volume" layer that you can put on top of the "surface" image in normal blending mode. Here's how you can do it :

1. Link your materials to the objects rather than their data:

2. Duplicate your scene with linked object data:

3. Remove your volumetrics object(s) from the first scene

4. Back in the new scene, select any object and replace the material by a new one:

5. Make this material a holdout:

6. Name this material "Holdout" and apply it to every object in your new scene except for your volumetrics objects, light emissive objets and partly transparent objects:

7. For light emissive objects, make a copy of the existing material, mix the existing emission shader with a holdout and use Camera Ray as the fac:

8. for partly transparent objects, make a copy of the existing material, mix the existing transparent shader with a holdout and if you have an alpha map, use it as the fac:

9. Enable Transparent film in your render settings:

10. Render

Here is an example of this technique being put to use in a project:







There is not a Volume Pass, but you can make one by subtracting everything else out of the beauty pass.

From http://blenderartists.org/forum/showthread.php?380260-Cycles-Volume-Pass

Since there is no default Volume Pass checkbox in Cycles yet I put together a compositor node group which just simply extracts it out of the beauty pass by subtracting diffuse, glossy and transmission component. To handle volume pass separately, blur it for example and than add it back without a noise can be rather time-saving.

There's also a node group you can download from that thread and examine.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .