Zodiacal Light

All about models for Celestia. How-to, programs, work in progress...
Topic author
scalbers
Posts: 138
Joined: 30.01.2005
With us: 19 years 11 months

Zodiacal Light

Post #1by scalbers » 26.02.2017, 18:58

Can this be included in Celestia if it isn't there yet? I have a 2-D model that can be used to make a texture from an Earth'-based vantage point.

zodiacal.png


http://stevealbers.net/albers/allsky/outerspace.html (caption and additional images)

Then the next step would be a 3-D model including scattering.
http://stevealbers.net

john71
Posts: 1009
Joined: 10.08.2016
With us: 8 years 5 months

Post #2by john71 » 26.02.2017, 20:14

Very nice, I don't know how can it be integrated into Celestia, but it would be fantastic!

Topic author
scalbers
Posts: 138
Joined: 30.01.2005
With us: 19 years 11 months

Post #3by scalbers » 26.02.2017, 20:28

Thanks john71. The 2-D version can perhaps be shown using the same procedure for displaying the Milky Way, or for the outer solar corona. In fact the zodiacal light is really a seamless extension of the corona. I presently have this as a FORTRAN subroutine that can be called to generate the 2-D brightness field.

The 3-D version would be similar to doing a galaxy fly through if this is presently possible.
http://stevealbers.net

Avatar
Alexell M
Site Admin
Posts: 303
Joined: 07.10.2010
Age: 31
With us: 14 years 3 months
Location: Moscow, Russia
Contact:

Post #4by Alexell » 02.03.2017, 17:54

Beautiful! And a great idea.

Added after 7 minutes 4 seconds:
https://github.com/CelestiaProject/Celestia/issues/8
Admin of celestia.space
PC: Intel Core i7-8700 @ 3.20GHz, SSD, 16 Gb RAM, NVIDIA GeForce GTX 1080, Creative Sound Blaster ZxR. Windows 10 x64.
Phone: iPhone Xs 256 Gb. iOS 14.
Image

Avatar
FarGetaNik M
Posts: 484
Joined: 05.06.2012
With us: 12 years 7 months
Location: Germany

Post #5by FarGetaNik » 02.03.2017, 18:11

Are there any plans on implementing a corona model already? This would go hand in hand with zodiacal light.

Topic author
scalbers
Posts: 138
Joined: 30.01.2005
With us: 19 years 11 months

Post #6by scalbers » 02.03.2017, 20:01

Here as a starting point is a quick cut-paste of some FORTRAN code for the zodiacal light that also includes a smooth version of the solar corona. An angular perturbation could be included for streamers. The 'vzod' result is the magnitudes per square arcsecond of the zodiacal light / corona, as seen from the vicinity of Earth. Other units can be derived such as spectral radiance and such.

-------------------------------------------------------------------------------------------------------------------------------

! Zodiacal Light S10 units 140 - 90 sin(beta) ecliptic latitude
elat = helioeclipticlat_a(ialt,jazi)
elon = helioeclipticlon_a(ialt,jazi)
if(elon .gt. 180.)elon = 360. - elon
s10zod_pole = 60. ! high ecliptic latitude
s10geg_ecliptic = 40. * cosd((elon-180.)/2.)**150.0
s10zod_ecliptic = 900. * cosd((elon)/2.0001)**7.7 + 140. + s10geg_ecliptic
! s10zod_ecliptic = 4000. * cosd((elon)/2.)**16.0 + 150. +
! s10geg_ecliptic
! Note the gegenschein of s10 = 40 can be added near
! helioecliptic 180.
eclp = 1.9 - 0.9*abs(elon/180.)
eclp = 1.0 ! control ecliptic sharpness
ecllatterm = abs(sind(elat))**eclp
s10zod = 10.**(log10(s10zod_pole) * ecllatterm + &
log10(s10zod_ecliptic) * (1.-ecllatterm))
! s10zod = (s10zod_pole) * ecllatterm + &
! (s10zod_ecliptic) * (1.-ecllatterm)
! s10zod = s10zod*10. ! debug for visibility

! F/K corona section (inner)
! http://arxiv.org/pdf/0909.1722.pdf (far corona in Fig 1.)
! https://ase.tufts.edu/cosmos/print_images.asp?id=28
! https://www.terrapub.co.jp/journals/EPS/pdf/5006_07/50060493.pdf
! "Interplanetary Dust" edited by B. Grun
sqarcsec_per_sqdeg = 3600.**2
size_glow_sqdg = 0.2 ! sun/moon area
delta_mag = log10(size_glow_sqdg*sqarcsec_per_sqdeg)*2.5
distr = sqrt(elat**2 + elon**2)
distr2 = max(distr,0.40) ! account for pixel size
srad = distr2/0.25
spowerk = 5.7 + srad * 2.0
spowerf = 7.5 + log10(srad) * 2.0
! spowerf = 8.0 + log10(srad) * 2.0
! spowerf2 = 8.3 + srad * 0.16
smag_eff = -26.7 + 2.5 * min(spowerk,spowerf)
rmag_per_sqarcsec = smag_eff + delta_mag
elong = min(sqrt(elon**2 + elat**2),180.)
coeff = 3.5 - 2.5*cosd(elong/2)**180.
if(elong .gt. 0.)then
! pcoeff = 1.0 - elon**2/(elon**2 + elat**2)
! pcoeff = abs(elat) / sqrt(elon**2 + elat**2)
! The last exponent controls ecliptic sharpness
pcoeff = (abs(elat) / sqrt(elon**2 + elat**2))**1.3
else
pcoeff = 0.
endif
fexp = -2.5*(1.-pcoeff) + (-2.8*pcoeff)
f_wm2srum = coeff * srad**fexp
f_s10 = wm2srum_to_s10(f_wm2srum)
! f_nl = wm2srum_to_nl(f_wm2srum)

! Merge original zodiacal light with corona
s10zod2 = max(s10zod,f_s10)

sbu = s10zod2 * 1.25
vzod = s10_to_magsecsq(s10zod2)
glow_zod = log10(v_to_b(vzod))
http://stevealbers.net

Topic author
scalbers
Posts: 138
Joined: 30.01.2005
With us: 19 years 11 months

Post #7by scalbers » 15.03.2017, 23:27

As per some off-line discussions, the above code is related to constructing a 2-D brightness field for the zodiacal light. This may not be a texture per se, though it could be used to create one if needed. Otherwise it can be calculated dynamically. The tricky part is the equations are only valid for an observer on or near the Earth. A 3-D interplanetary dust model would be needed to see changes in the zodiacal light as we travel through the solar system. Nonetheless it can be a good start to only activate this for an observer near the Earth.

The 3-D model could be simple to start with, specifying dust concentration as a function of distance from the sun and ecliptic latitude. This could be adjusted to fit the observed zodiacal light seen from the Earth. I just found this reference about 3-D dust modeling:

http://cds.cern.ch/record/481511/files/0012033.pdf
http://stevealbers.net

Avatar
FarGetaNik M
Posts: 484
Joined: 05.06.2012
With us: 12 years 7 months
Location: Germany

Post #8by FarGetaNik » 16.03.2017, 08:45

A 2D texture would be a nice start, it could simply fade out at higher distances. Celestia also suports 3D sprite models, but maybe it'll be hard to make it look smooth, not speckled. Smooth, fuzzy 3D model support opens many possibilites, like improved nebula and galaxy render, also benefiting Celestia. At least something to consider.

Topic author
scalbers
Posts: 138
Joined: 30.01.2005
With us: 19 years 11 months

Post #9by scalbers » 18.03.2017, 19:41

Here is a 2D texture for the zodiacal light and solar corona. The brightness range is saturating at both the high and low ends with an 8-bit image, so perhaps I should generate a 16-bit one? The coordinates are ecliptic latitude and longitude.

zod.png


Note this can be used from the surface of the Earth or from near Earth orbit, or from space within a reasonable distance. The distance of the observer from the sun should be within around .9 to 1.1 AU and the distance from the ecliptic plane should be within roughly .03 AU. Outside of this envelope the 3-D dust is changing so we would need more of a 3-D dust model for rendering purposes.
http://stevealbers.net

Avatar
FarGetaNik M
Posts: 484
Joined: 05.06.2012
With us: 12 years 7 months
Location: Germany

Post #10by FarGetaNik » 31.03.2017, 18:44

That's a good start, I think Celestia is capable of rendering such a texture already... Alexell posted an addon displaying the asteroid and Kuier Belts, if I remeber correctly it fades at certain ditances. It might be difficult to only display it at the intended range. Another possibility is to create a spherical Nebula... honestly I don't know how to implement it correctly at the moment.

For a texture it might be benificial to use 16 bit, or scaling the brightness with alpha. But the better solution certainly is to render 3D brightness distribution function.


Return to “Modelling”