Chuft-Captain wrote:I'm sorry, I don't know what you mean by this? What doi you mean "I used ambient light" ?
I don't know how to put this, but isn't this feature called "ambient light" in Celestia? Click on Render/Ambient Light/None and it's gone. If not turned off, it will add a grey background level (of apparently ~8%) to every object that doesn't emmit light by itself. So you can't use this setting and claim the ring shadow is not completely black.
Chuft-Captain wrote:I have already reviewed my code earlier tonight and am now adjusting the alpha channels by dividing with the maximum for each dataset. eg. opacity=exp(optical_depth)/highest_detectable_opacity, and then normalizing between 0 and 255. I assume this is what you mean by "calibrated".
As a result, the opacity and detail of of the B-Ring is significantly improved / reduced (especially the inner section):
I don't exactly know if this is a necessary step you described, as I'm not sure how opacity is defined physically. I am using transmittance (which I assume is equal to "transparency" as we used this term until now) and after normalizing it I invert it to get opacity (the necessary alpha-channel). What I meant was if the highest detected opacity is 92%, than the alpha channel we are using in the final texture also should have its highest value at 92% (or 235 in an 8bit image). But looking at your screenshots the texture really improved. I guess this is closer to reality now.
Chuft-Captain wrote:Err ... did you not realize that this is what I am already doing?
Err... yes but I guess I wasn't really thinking about that statement
I was unsure what data you are using in your actual textures. Maybe it still comes back to how we process it (I still don't know if stored value vs. displayed value plays a role in transparency, that's why I messed with gamma in the first place).
Finally I've done a bit of math. The increased opacity due to occlusion of the ring particles should be expressed by this formula:
t' = exp(-tau/cos(theta))Where t' is the modified transmittance (after normalizing and inverting it, we get opacity), tau is optical depth and theta the angle with respect to the normal of the ring plane. I propose using an angle of ~22.9°relative to the ring plane (or 67.1 in my equation) as this is highest angle all of the main rings still occult Saturn.
Added after 2 hours 2 minutes:Chuft-Captain wrote:I think I've already asked this ... but how did you create the RGB channels for your texture? It might be useful to apply your RGB channel to my process which would make it easier to evaluate differences in transparency between our different processes, as that shold then be the only difference. Can you post just the RGB portion? (with no alpha channel).
Sure, I just exctracted the RGB channels from my RGBA texture, here we go:
As I said, until now my textures are based on Bj?rn Johnsson's data. First I fit the brightness of the rings
http://bjj.mmedia.is/data/s_rings/backscattered.png to my transparency
http://bjj.mmedia.is/data/s_rings/transparency.png (and radial model). I devide it by opacity (so I remove the effects of the black background on transparent rings) and do some calbration which I think makes it look more realistic. For details see my first post. I then multiplied it with the color map
http://bjj.mmedia.is/data/s_rings/sat_ring_color.png and a color I most recently got from a mixture of the textures you posted and the value Johnsson recommended. I also mixed forward-scattered light in there for visual purpose.