Simply combining the alpha-channel of the texture and the color image gives a very high-resolution ring texture, which looks great at first but then you notice the contrast being too high, with transparent areas being too dark.
To do at least some calibration, I use a different map of Saturn with similar color to many Cassini images and a gamma-corrected brightness corresponding to bond albedo, but found this to be too dark, so I introduced a bit of specularity to simulate a higher geometric albedo. The texture itself was a lot of work to do, and I am still unsure about contrast and color balance. It is the best texture of Saturn I could create, based on Bj?rn J?nssons’s map and filled with details by John Van Vliet and Runar Thorvaldsen.
Celestia’s way of rendering planetary rings is in no way accurate. As a physics student I have some basic understanding of the physics involved, but I am in no way an expert in planetary rings. I’ll try my best to express the way Celestia represents the rings vs. what it should do instead.
- Celestia takes the color texture and makes it transparent according to its alpha channel. Since the data we have available is not the reflectivity of the ring particles, but instead the apparent brightness of the rings vs. the black background of space, simply combining image data with transparency results in rings being way to dark in transparent areas.
- Celestia always uses the same transparency independent of the angle between ring plane and observer. The real rings appear more opaque at low angles, for example when viewed against Saturn. The rings have a thickness, at low angles more ring particles are in the way, blocking more light.
I decided to start from scratch and use data available at Bj?rn J?nsson’s homepage: http://bjj.mmedia.is/data/s_rings/index.html. The transparency texture seems inverted compared to Celestia’s texture, which shows that Celestia is really using an opacity map (opaque rings being white, transparent being black). I used the back-scattered map as a base (Celestia renders the rings brightest at low phase angles when light is back-scattered) but later also processed the forward-scattered.
The textures are only 1500 pixels wide, so is the texture I processed (if you have issues with non-power-of-two textures, you might have to scale it up to 2k, but my graphic doesn’t care). He also posted text files in much higher resolution (5km/pixel). I have no idea how to convert tabulated text to an image file, I really need your help with this one!
I tried many different ways to create a texture that looks realistic. I’ll just describe the way I got the best result: I started with the transparency map, multiplied it with itself and inverted it to simulate a higher opacity due to a low angle with respect to the ring plane. Then I took the forward-scattered map, also multiplied it with itself and divided it by the corrected opacity texture. I gamma-corrected the resulting ring-reflectivity texture. Then I colored it with the relative-color-texture, changed color-balance to fit photographs and united it with the transparency map. Here the ready-to-use texture packed as an addon:
But there still remain some rendering errors, probably due to simplification. I can’t work around them, Celestia would need an update to correct that:
- Celestia 1.7 does render the unlit side properly in contrast to 1.6.1. Using these corrected texture shows similar structures to reality, only the overall brightness is too low.
- In reality, the rings appear dimmer when the sun illuminates them from an angle closer to the ring plane, because less ligh can hit the narrower cross-section seen from the sun. Celestia does not take this into account, so most of the time the rings appear too bright.
- The ring fade to black at very high phase angles. Celestia does not render forward-scattered light (when looking at the illuminated side). In reality the rings become dimmer at high phase angles, but they don’t become completely black (At least I think so, I haven't found photographic evidence)
- When viewing the unlit side at high phase angles, the visible structures change again due to dust in some parts of the rings, forward-scattering the light.
Note the difference in the brightness of different ringlets between backscattered (left) and forwardscattered light on the unlit side.
A separate texture would be needed to render forward-scattered light for both the illuminated and unlit side. If this was possible, the rings could be extended to the D- G- and E-rings.
What do you think is the best way to process the data we have to create a realistic ring texture? How to convert high-resolution tabulated data into image files?