A shading model for gaseous planets like Jupiter
For rendering Jupiter with realistic limb darkening a considerably more complex shading model is required than e.g. Lambert shading.. Lambert isn't too bad if you want limb darkening that is identical at all wavelengths but for Jupiter that is inaccurate. Limb darkening increases a little with wavelength, making the limb slightly bluish. I attempted to simulate this by using Lambert shading and then modifying the result for points 'close' to the limb. Referring to the diagram below, it was obvious that the emission angle e was the key to this, at small phase angles (a) limb darkening should increase when e approaches 90°. Phase angle also affects limb darkening, at high phase angles (especially when the observer sees the planet as a crescent) there should be little limb darkening or none at all.
Using trial and error I came up with the shading model described below. I used the global images obtained by the Cassini spacecraft of Jupiter as a guide. I made lots of renderings, measuring the intensity across Jupiter's disk in the renderings in red, green and blue and comparing this to measurements of the Cassini photos. The result was the shading model described below. It reproduces Jupiter's limb darkening fairly well and as far as I know this is a new shading model. It can probably be improved, especially the values for the different parameters and the phase angle effects. The images I used where taken at a low phase angle and I made only rudimentary checks against images taken at high phase angles. This means that for low phase angles (e.g. Jupiter seen from the Earth) the shading model should be fairly accurate but at higher phase angles there is room for a lot of improvement. An additional complication is that I don't know exactly how the Cassini images were processed since the 'raw' Cassini imagery hasn't been released, all I have are JPGs. I plan to check renderings from this model against Voyager images since for these I have all of the raw images.
It is possible that this model could be modified to give good rendering results for the other gas giants (especially Saturn) but I haven't taken a detailed look at that yet.
Referring to the above diagram, i is the angle of incidence, e is the emission angle and a is the phase angle. The intensity I of a point P as seen from the observer is calculated as
where k=0.85. This is Lambert shading with the addition of the power factor k. Following this I is modified for points 'close' to the limb:
If cos(e)<ce then multiply I by ((cos(e)/ce)rp(1-rc)+rc)ca+(1-ca)
where ce=0.75 and ca=(cos(a)+1)/2
rc and rp vary with wavelength: For red, rp=0.2 and rc=0.1. For green, rp=0.125 and rc=0.07. For blue, rp=0.04 and rc=0.5
[Update 29 March 2002: These parameters can be improved]
The parameter ce controls where limb darkening starts. The fact that the limb darkening formulas are not applied until cos(e)<ce makes the second derivative of an intensity profile across the disk discontinuous. This could probably be improved by modifying the formuals. However, the effect of this is small in this context and I achieved far better results with this parameter than by omitting it (or setting it to 1.0 which is equivalent).Copyright © 2002 Björn Jónsson.