How do I create a volume emitter shader that is more intense towards the outside of the object? I would basically like to create tubes that look like the blue (not purple) tubes in this image: reference image
(source: colorado.edu)
(Figure is by Steve Burrows and the Kapteyn–Murnane Group, JILA. From this article.)

But, I cannot figure out how to get the "depth" coordinate of the image in order to feed this to the intensity of the emitter.

Any ideas on how to do this in cycles?


1 Answer 1


You might be able to do something with the Ray length output of the lightpath node, however based on your example image I think you might be looking for the layer weight (or fresnel) node:

enter image description here

enter image description here

The above node setup mixes an emission shader with a transparent shader based on the angle of the surface to the camera. In this case sharper angles emit light, while more direct angles are transparent.

  • $\begingroup$ But it doesn't look nearly as good with transparent film, per your bug report here: developer.blender.org/T42755 unfortunate. $\endgroup$ Jan 13, 2015 at 17:38
  • $\begingroup$ Ah, yes. As a workaround you can use the emit pass and combine it with the render in the compositor, or you can connect a not-entierly-transparent transparent shader to the surface output. (The latter isn't perfect, but it's faster to set up). $\endgroup$
    – gandalf3
    Jan 13, 2015 at 21:24

You must log in to answer this question.

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