aboutsummaryrefslogtreecommitdiffstats
path: root/daylight.txi
diff options
context:
space:
mode:
Diffstat (limited to 'daylight.txi')
-rw-r--r--daylight.txi117
1 files changed, 117 insertions, 0 deletions
diff --git a/daylight.txi b/daylight.txi
new file mode 100644
index 0000000..fa24afc
--- /dev/null
+++ b/daylight.txi
@@ -0,0 +1,117 @@
+@code{(require 'daylight)}
+@ftindex daylight
+@ftindex sunlight
+@ftindex sun
+@ftindex sky
+
+@noindent
+This package calculates the colors of sky as detailed in:@*
+@uref{http://www.cs.utah.edu/vissim/papers/sunsky/sunsky.pdf}@*
+@cite{A Practical Analytic Model for Daylight}@*
+A. J. Preetham, Peter Shirley, Brian Smits
+
+
+@defun solar-hour julian-day hour
+
+
+Returns the solar-time in hours given the integer @var{julian-day} in the range 1 to
+366, and the local time in hours.
+
+To be meticulous, subtract 4 minutes for each degree of longitude west
+of the standard meridian of your time zone.
+@end defun
+
+@defun solar-declination julian-day
+
+@end defun
+
+@defun solar-polar declination latitude solar-hour
+Returns a list of @var{theta_s}, the solar angle from the
+zenith, and @var{phi_s}, the solar azimuth. 0 <= @var{theta_s}
+measured in degrees. @var{phi_s} is measured in degrees from due
+south; west of south being positive.
+@end defun
+@noindent
+In the following procedures, the number 0 <= @var{theta_s} <= 90 is
+the solar angle from the zenith in degrees.
+
+@cindex turbidity
+@noindent
+Turbidity is a measure of the fraction of scattering due to haze as
+opposed to molecules. This is a convenient quantity because it can be
+estimated based on visibility of distant objects. This model fails
+for turbidity values less than 1.3.
+
+@example
+@group
+ _______________________________________________________________
+512|-: |
+ | * pure-air |
+256|-:** |
+ | : ** exceptionally-clear |
+128|-: * |
+ | : ** |
+ 64|-: * |
+ | : ** very-clear |
+ 32|-: ** |
+ | : ** |
+ 16|-: *** clear |
+ | : **** |
+ 8|-: **** |
+ | : **** light-haze |
+ 4|-: **** |
+ | : ****** |
+ 2|-: ******** haze thin-|
+ | : *********** fog |
+ 1|-:----------------------------------------------------*******--|
+ |_:____.____:____.____:____.____:____.____:____.____:____.____:_|
+ 1 2 4 8 16 32 64
+ Meterorological range (km) versus Turbidity
+@end group
+@end example
+
+
+@defun sunlight-spectrum turbidity theta_s
+Returns a vector of 41 values, the spectrum of sunlight from
+380.nm to 790.nm for a given @var{turbidity} and @var{theta_s}.
+@end defun
+
+@defun sunlight-xyz turbidity theta_s
+Returns (unnormalized) XYZ values for color of sunlight for a
+given @var{turbidity} and @var{theta_s}.
+@end defun
+
+@defun sunlight-ciexyz turbidity theta_s
+Given @var{turbidity} and @var{theta_s}, @code{sunlight-ciexyz} returns the CIEXYZ triple for color of
+sunlight scaled to be just inside the RGB709 gamut.
+@end defun
+
+@defun zenith-xyy turbidity theta_s
+Returns the xyY (chromaticity and luminance) at the zenith. The
+Luminance has units kcd/m^2.
+@end defun
+
+@defun overcast-sky-color-xyy turbidity theta_s
+@var{turbidity} is a positive real number expressing the amount of light
+scattering. The real number @var{theta_s} is the solar angle from the zenith in
+degrees.
+
+@code{overcast-sky-color-xyy} returns a function of one angle @var{theta}, the angle from the
+zenith of the viewing direction (in degrees); and returning the xyY
+value for light coming from that elevation of the sky.
+@end defun
+
+@defun clear-sky-color-xyy turbidity theta_s phi_s
+@defunx sky-color-xyy turbidity theta_s phi_s
+@var{turbidity} is a positive real number expressing the amount of light
+scattering. The real number @var{theta_s} is the solar angle from the zenith in
+degrees. The real number @var{phi_s} is the solar angle from south.
+
+@code{clear-sky-color-xyy} returns a function of two angles, @var{theta} and @var{phi} which
+specify the angles from the zenith and south meridian of the viewing
+direction (in degrees); returning the xyY value for light coming from
+that direction of the sky.
+
+@code{sky-color-xyY} calls @code{overcast-sky-color-xyY} for
+@var{turbidity} <= 20; otherwise the @code{clear-sky-color-xyy} function.
+@end defun