Rendering Saturn's Rings
It took me a while to figure out how to do this realistically in
Imagine. Similar techniques will probably work in other
rendering programs. Key steps are:
- Create a 1-dimensional transparency map. I obtained the raw
numerical data for mine from Bjorn Jonsson's planetary rendering
site, and digested it using an IDL routine to create a map that
would have correct geometry when wrapped with spherical
geometry around an axis located a pre-determined distance (I chose 2
Saturn radii) above the ring plane. The rendering of the rings here
was done using a 1 x 12,000 pixel mask- because it's one dimensional
it can be very high resolution without using much memory. The nature
of spherical mapping means that only about 1/4 of those pixels can be
used for the actual rings- the rest are blank.
Here is my 1 x 12,000 pixel transparency
mask, in .BMP format- download using "Save Link As".
- Create a plane larger than Saturn's rings, and center the texture
axis the predetermined distance above the center of the plane. Apply
the mask as a transparency mask, with spherical mapping around an
axis perpendicular to the ring plane.
- That's all that's required for the lit side of the rings- if the
ring color is something light, both the rings and their shadow on the
planet will look right. There might be a problem with the rings being
too dark when the sun is a small angle above them- fixing this
requires some of the techniques required for the dark side of the
- The dark side is more complex because, like most rendering
programs, Imagine can't handle the diffuse scattering that
illuminates the dark side of the rings. A different model is needed,
that in addition to the transparency map has a brightness map, with
similar values and identical projection to the transparency map, but
set to zero where the rings are completely transparent, where the
transparency map's value is 255. Here is
my 1 x 12,000 pixel dark-side brightness mask, in .BMP format-
download using "Save Link As".
- Because the dark side of the rings has a brightness map, it will
glow in the dark where Saturn's shadow crosses it, and we don't want
that. My solution is to use the Imagine slice function to
cut out the part of the ring that's in shadow (using a cylindrical
slicer), and color that part black (while maintaining the transparency
map, so the dark ring will still block light from the planet where it's thick).
The resulting ring model will only work for a single sun angle, but
I haven't yet found a better solution.
- The same "artificial shadow" will work on the lit side of the
rings, and allows addition of extra brightness to the lit rings to
make them brighter when the sun angle is low.
Return to John Spencer's Astronomical Visualizations Page
Return to John Spencer's Home Page