# Configuration file for SilverLining

##########################
# General Settings
##########################

# Enable the use of 'backdrops' that render distant clouds beyond a given distance
# to a set of quads surrounding the viewpoint. Supported only under OpenGL.
use-cloud-backdrops = yes

# The number of backdrop quads surrounding the camera. Only one backdrop per
# frame is updated, so setting this larger will increase performance at the
# cost of less frequent updates.
num-cloud-backdrops = 32

# The distance, in meters, to the cloud backdrops.
cloud-backdrop-distance = 50000

# The angular height of the backdrop geometry
cloud-backdrop-angular-height = 45

# The dimensions of the texture map used to represent the cloud backdrop.
cloud-backdrop-texture-dimension-x = 64
cloud-backdrop-texture-dimension-y = 256

# The threshold of vertical motion, expressed as a percentage of the backdrop distance,
# at which an update of the backdrop will be triggered.
cloud-backdrop-vertical-threshold = 0.01

# The threshold of horizontal motion, expressed as a percentage of the backdrop distance,
# at which an update of the backdrop will be triggered.
cloud-backdrop-horizontal-threshold = 0.05

# The length of time, in seconds, over which updated backdrop textures are blended
cloud-backdrop-texture-transition-time = 1.0

# Restores the back buffer to what it was after performing lighting calculations.
# Useful if you don't render the sky by passing false to Atmosphere::BeginFrame()
# and you don't want BeginFrame() to pollute the back buffer under any circumstances.
# This comes at a performance cost whenever the simulated time of day is modified.

preserve-back-buffer = no

# Toggles whether cull tests are performed on entire cloud layers. Useful if
# you have many cloud layers, some of which may be off screen.
enable-cloud-layer-culling = yes

# Creates an offscreen render target for the cloud lighting pass. This
# option will allow you to do full screen antialiasing on systems that
# don't permit FSAA on lockable backbuffers, but not requiring pixel
# read back from the backbuffer. It takes more video memory, however.
# This is only relevant for DirectX9 developers, and will be enabled for
# DirectX10 users regardless of what is set here.
render-offscreen = yes

# The dimension of the offscreen buffer, if render-offscreen is true.
# This buffer will be recycled as the shadow map as well. Must be power of 2.
offscreen-dimension = 512

# Dimension of shadow maps generated in texels. Smaller makes better use of memory
# bandwidth and texture memory; larger looks better. Must be power of 2. Used
# only if render-offscreen is false.
shadow-map-dimension = 512

# How dark are the shadows? (zero is pitch black, 1 is no shadows.)
shadow-map-darkness = 0.5

# Default location (degrees of latitude and longitude, west longitude is negative,
# north latitude is positive. Altitude is in meters.)

default-longitude = -122.064840
default-latitude = 30
default-altitude = 100.0

# Default time. The timezone is in hour offset from GST. (EST = -5, CST = -6,
# MST = -7, PST = -8)

default-year = 2011
default-month = 8
default-day = 15
default-hour = 12
default-minute = 0
default-second = 0
default-dst = yes
default-timezone = -8

# Overall brightness of tone mapping.
brightness = 0.8

# Enable or disable tone mapping altogether. Disabling it will lead to smoother day/night transitions and
# richer colors in some situations, but at the cost of very dark nights.
disable-tone-mapping = no

##########################
# Sky Settings
##########################

# If your graphics hardware can support vertex shaders with more than 128 instructions,
# the complex sky shader will provide better transitions between day and night. If you
# can't be sure, then use the simpler shader which fits inside 128 instructions.
# Specifically, the complex shader models light from the sun and moon simultaneously
# instead of modeling just the dominant light source.
sky-simple-shader = no

# Width/height of each skybox face in world units. Only important in terms
# of making it fit within your view frustum.
sky-box-size = 1000

# Force the sky box to offset its height. Useful for compensating for terrains that
# don't extend to the horizon.
sky-box-y-offset = -40

# How many rows and columns are in each face of the sky box. Higher numbers
# result in smoother, more accurate sky colors at the cost of performance.
sky-box-resolution = 40

# Gamma value for the sky vertices; higher values will desaturate the sky, lower
# ones will give more contrast / darker colors.
sky-box-gamma = 2.2

# The default turbidity value, which you can think of as a measurement of how
# much haze is in the atmosphere.
#
#            1 = Pure air, range 256 km
#            2 = very clear, range 50 km
#            3 = clear, range 15 km
#            7 = light haze, range 8 km
#            20 = haze, range 3 km
#            50 = thin fog, range 2 km

default-turbidity = 2.2

# Selects the air mass model used. Default is SPECTRL2 which is what the Bird model uses.
# other options are the International Comet Quarterly model ("ICQ") or the National Renewable
# Energy Lab model ("NREL").
air-mass-model = SPECTRL2

# Sets the xy values in the xyY color used for twilight conditions.
twilight-chromaticity-x = 0.25
twilight-chromaticity-y = 0.25

# Sets tweaks for the color of the sky at sunset, in terms of the % boost given to each tristimulus
# value when the sun approaches the horizon. X is more or less "red"
sunset-X-boost = 0
sunset-Y-boost = 0
sunset-Z-boost = 0

# The sunset boost exponent controls how the color boosts are applied as the sun sets.
# Higher powers will apply the change more quickly as the sun approaches the horizon.
sunset-boost-exponent = 6

# Modulates the simualted air mass. More air means more scattering / more dramatic colors.
air-mass-multiplier = 1.0

# Shift the simulated spectra towards red. Valid values are 0-80. You can use this to make the sunsets
# less yellow.
spectrum-red-shift = 0

# Indicates if the sun disc should be drawn when it's below the local horizon. You might want this
# if you're viewing the Earth from space, for example.
draw-sun-below-horizon = no

# Controls whether the sun/moon disc should take on the color of the tone-mapped light it emits.
# If yes, the sun/moon will turn reddish as it nears the horizon. If no, it will always be white.
# Leave this to "no" for space-based applications.
scatter-sun-color = yes
scatter-moon-color = yes

# The width of the solar disc in degrees. This is actually 0.5 but that looks "wrong" to most
# viewers. The sun glare, if enabled, will make it look bigger too.
sun-width-degrees = 1.0

# The width of the lunar disc in degrees. This is also 0.5 degrees in actuality, but people
# are conditioned to expect it to be much larger based on film and games.
moon-width-degrees = 1.0

# Enables a radial gradient from the sun or moon position for a simple glow effect
enable-sun-glow = yes
enable-moon-glow = yes

# The size of the glow effect, in degrees
sun-glow-size = 3.0
moon-glow-size = 3.0

# The size of the sun glow effect when infrared sensor mode is on, in degrees
sun-glow-size-infrared = 10.0

# The additive intensity of the glow effect
sun-glow-intensity = 0.08
moon-glow-intensity = 0.5

# The maximum luminance from skylight alone allowed in the simulation, after tone mapping.
max-skylight-luminance = 1.0

# Scale factor for solar and lunar radiation prior to tone mapping
# In HDR mode, this can be used to influence the brightness of the clouds
# independently from the sky
sun-luminance-scale = 1.0
moon-luminance-scale = 0.25

# Scale factor to make the moon less bright in the sky at night
moon-brightness-scale = 0.01

# Scale factors for the raw computation of the transmitted and scattered luminances of the
# sun and moon. This becomes important if you're using Atmosphere::EnableHDR() to give you
# control over the luminosity of the sky and clouds relative to the rest of your scene.
sun-transmission-scale = 1.0
sun-scattered-scale = 1.0
moon-transmission-scale = 1.0
moon-scattered-scale = 1.0

# Simulated ozone amount, in atm-cm. This is important for making sunsets orange instead of yellow.
# If you have data in "Dobson units", 100 Dobson Units = 0.100 atm-cm. 0.35 is typical, but if
# you happen to be in Antarctica under the ozone hole, it's more like 0.20.
atmosphere-ozone-mass = 0.35

# Simulated water vapor amount, in atm-cm
atmosphere-water-vapor-mass = 2.5

# Affects darkening or brightening of the horizon
perez-a-scale = 1.0

# Affects luminance gradient near the horizon
perez-b-scale = 1.0

# Affects relative intensity of circumsolar region
perez-c-scale = 1.0

# Affects width of the circumsolar region
perez-d-scale = 1.0

# Affects relative backscattered light
perez-e-scale = 1.0

# Ground albedo (realistic value would be 0.3, but this leads to horizons
# that are too pink for our expectations)
ground-albedo = 0.0

# Set to fog the clouds to whatever the sky color is at the horizon, instead of computing
# the sky color at the location of each individual cloud to fog against.
disable-per-cloud-fog = no

# By default the average horizon color is calculated based on the current field of view. By
# choosing a value greater than 0.0 you can overrule this default behavior and make sure a
# specific field of view is used. This, in combination with average-horizon-color-num-samples
# can be used in a multi-channel setup to make sure that all pipes, e.g. 10 pipes that together
# cover a 360 degrees projection, calculate the same average horizon color. This will prevent
# fog color differences between adjacent pipes.
# E.g. specify average-horizon-color-fov = 360 and average-horizon-color-num-samples = 10 to
# calculate the average horizon color over 360 degrees using 10 samples instead of the default 8
# samples from the current fov.
average-horizon-color-fov = -1.0

# Number of samples used to determine the average horizon color.
average-horizon-color-num-samples = 8

##########################
# Precipitation
##########################

# Allow SilverLining to set fog to simulate loss of visibility due to precipitation.
# You can manage this yourself using the formula visibility (km) = 11.6 * pow(R, -0.63)
# where R is the precipitation rate in mm/hr. The corresponding exponential fog density can be
# obtained from 3.91 / visibility (m)
enable-precipitation-visibility-effects = yes

# Number of rain streak particles maintained for the maximum allowed precipitation intensity.
# Increase this for denser-looking rain or snow (at lower performance)
rain-max-particles = 100000
snow-max-particles = 200000
sleet-max-particles = 100000

# The upper limit on the number of particles rendered in the scene per frame. Useful for
# enforcing an upper bound on frame times.
rain-max-rendered-particles = 3000
snow-max-rendered-particles = 3000
sleet-max-rendered-particles = 3000

# The amount of simulated time per frame for the purpose of calculating the streak
# length for rain. If set to zero, the actual frame time will be used, multiplied by
# the velocity of the raindrop. We set this to 1/60 s however, to ensure consistent
# appearance regardless of framerate.
rain-streak-frame-time = 0.016667

# Ditto for sleet, although we just use this to control the length of the streak.
sleet-streak-frame-time = 0.01

# Switches whether rain streaks take camera motion into account. If yes, streaks will be drawn
# from the previous position relative to the camera to the new position relative to the camera.
# If no, they are drawn relative to world coordinates.
rain-streak-camera-coords = no

# Ditto for sleet
sleet-streak-camera-coords = no

# The maximum allowed rainfall, in millimeters per hour, at which rain-max-particles will
# be used.
rain-max-intensity = 30.0

# Same for snow (note, this is liquid equivalent rate in mm/hr, not snow accumulation rate.
# 25 mm/hr is considered "heavy snow"
snow-max-intensity = 30.0

# Ditto for sleet
sleet-max-intensity = 30.0

# The radius of the area surrounding the camera that new particles are introduced into.
rain-volume-radius = 10.0
snow-volume-radius = 8.0
sleet-volume-radius = 10.0

# Fudge factor for making rain streaks more visible. For realistic purism, set to 1.0,
# but just like real life, they'll be hard to see. Ignored if rain-constant-alpha is set
# to a non-zero value.
rain-streak-brightness = 4.0

# The transparency of a rain streak is determined by the size of the droplet and the length of
# the streak (which in turn depends on the frame time.) At high speeds, this may approach zero.
# This setting allows the engine to not bother rendering the particles at some point in order
# to conserve performance.
rain-alpha-threshold = 0.01

# If you'd rather have a constant alpha for the rain streaks regardless of the area they
# cover in a given frame, set this to non-zero and rain-streak-brightness will be ignored.
rain-constant-alpha = 0.0

# The alpha value for sleet particles. Sleet alpha is always constant.
sleet-alpha = 0.6

# You can also influence the simulated width of the rain streaks. Setting this to 1.0
# will give you realistic results of a few millimeters, but they are hard to see
# and won't cut it at all for broadcast video applications.
rain-streak-width-multiplier = 1.0

# At large fields of view, precipitation may become invisible as the droplets project
# to less than one pixel. This setting enforces a minimum particle size in screen space.
rain-minimum-pixels = 5.0
sleet-minimum-pixels = 5.0
snow-minimum-pixels = 5.0

# Ditto for snowflakes.
snowflake-size-multiplier = 5.0

# And for sleet
sleet-size-multiplier = 2.0

# SilverLining will simulate accurate visibilty via fog in rain for the precipitation rate
# you specify, if enable-precipitation-visibility-effects is on. You might be surprised
# at just how limited visibility is in rain, typically a few kilometers. You can fudge
# the simulated visibility here.
rain-visibility-multiplier = 1.0

# A similar fudge factor for snow visibility
snow-visibility-multiplier = 3.0

# And for sleet
sleet-visibility-multiplier = 1.0

# This defines the slope of the exponential distribution curve on a log scale of snowflake sizes
# It generally varies from about 1.0 to 2.4 based on studies of lake effect snow on
# Lake Michigan (see Braham, Robert, "Snow Particle Size Spectra in Lake Effect Snows",
# 1990, Journal of Applied Meteorology, Vol 29 p 200-207)
snow-lambda = -16

# If yes, snow particles will be randomly rotated at initialization.
# If no, the particles will be billboarded to face the camera at all times.
snow-rotate-particles = yes

# The color of snowflakes. Pure white looks a little cartoonish.
snow-color-r = 0.9
snow-color-g = 0.9
snow-color-b = 0.9

# The terminal velocity of snowflakes, in meters per second.
wet-snow-velocity = 2.0
dry-snow-velocity = 1.0

# The near clipping plane when drawing snow/rain. Closer values will result in bigger flakes
# close to the camera.
snow-near-clip = 0.5
rain-near-clip = 1.0
sleet-near-clip = 1.0

# By default, precipitation effects disable use of the depth buffer, so we can pull in the near
# clipping plane to show particles close to the camera. If you adjust your own near clipping plane
# to account for this, we won't have to, and we can use the depth buffer again as depth values
# will be consistent between precipitation and your scene. This can let you get around anomalies
# where precipitation appears to fall through the ground and remain visible. If you enable this,
# the "near-clip" values above won't be used.
rain-use-depth-buffer = no
snow-use-depth-buffer = no
sleet-use-depth-buffer = no

##########################
# Atmosphere from space
##########################

# If enabled, a blue ring will be drawn around the circumference of the Earth
# in geocentric coordinates - if the camera is positioned above the atmosphere
# (also in geocentric coordinates.)
enable-atmosphere-from-space = no

# When using geocentric mode, we assume that the Z axis is "north." If Y is north,
# set this to "no" so that the sun, moon, and stars are rendered consistently with the
# sky.
geocentric-z-is-up = yes

# Enables / disables computation of the ring's vertices on the GPU
atmosphere-enable-shader = yes

# Number of segments of the atmosphere surrounding the image of the Earth,
# affects the granularity of culling.
num-atmosphere-segments = 10

# The number of polygon segments that make up each atmosphere segment
# laterally. Higher means better curves but slower.
atmosphere-segment-lateral-resolution = 20

# The number of polygon segments from MSL to the top of the atmosphere.
# More means more accurate colors but slower.
atmosphere-segment-vertical-resolution = 6

# Radius of the Earth in meters; we model it as a sphere for simplicity.
# So to prevent gaps between the Earth and the atmosphere, we take the
# polar radius from WGS84 to err on the small side.
earth-radius-meters = 6356752.3142

# Thickness of the atmosphere, if the density were uniform (H0)
# Density at height h is given by exp(-h/H0), where density 1.0
# equates to sea level
atmosphere-scale-height-meters = 8435

# Height to which we stop rendering the atmsophere, in meters.
atmosphere-height = 300000

# Brightness of the rendered atmosphere
atmosphere-brightness = 3.0

# Distance over which the atmosphere fades to blackness
atmosphere-fade-distance = 1000000.0

##########################
# Glare Settings
##########################

# The overall brightness of glare effects
glare-brightness = 0.005

# The upper bound of tone-mapped luminance to compute glare for.
glare-luminance-cap = 1.5

# Disable the physically-based glare simulation on the sun
# (This causes performance issues on some Nvidia drivers)
disable-sun-glare = yes

# Disable the physically-based glare simulation on the moon
disable-moon-glare = yes

# Disable the physically-base glare simulation on bright stars
# It looks nice, but it does incur a performance penalty on some systems, so
# it's disabled by default.
disable-star-glare = yes

# Set the minimum visual magnitude of displayed stars (remember negative is brighter)
minimum-star-magnitude = 5.1

# Set the minimum visual magnitude of displayed stars that compute glare
minimum-star-glare-magnitude = 1.0

# The size of each star point, in pixels. (Only honored in OpenGL)
star-point-size = 1.0

# Adds the given value to the simulated magnitude of each star.
# (negative is brighter, positive is dimmer.)
star-magnitude-adjustment = 0

# Enable flare lines on the solar / lunar glare
photopic-disc-flare-lines = yes

# Enable lenticular halos on mesopic / scotopic glares
lenticular-halos = no

# The width, in degrees, spanned by each glare texture. Apparent width is bounded
# by this.
max-glare-diameter = 8.0

# The number of randomly distributed flare lines
flare-lines = 350

# The exponential rate at which flare lines influence the image with distance from the light source
# ie, 1.0 = linear falloff, 0.5 is the square root of normalized distance, 2.0 is squared.
# Smaller numbers will generally result in more brightness in the center of the flare, larger numbers
# shrink the central blurry point light.
flare-falloff = 1.2

#########################
# Lens Flare Settings
#########################

# If you're sure you won't be using lens flare or Atmosphere::GetSunOcclusion(), set this
# to yes in order to avoid pipeline stalls when the sun is in view. This can have a 
# substantial performance benefit if you don't need this effect.
disable-lens-flare = no

# Selects whether to use hexagonal flares, as opposed to circular flares.
# In reality, this would depend on the type of aperture on the camera being
# used. Most lens flares I see in TV and film lately seem to be hexagonal.
use-hex-flares = no

# The overall size of each flare as a percentage of the viewport width
lens-flare-size = 0.2

# How quickly the flare dims as it passes behind clouds or other occluders.
lens-flare-falloff = 4.0

# The overall brightness of the flare effects.
lens-flare-brightness = 1.0

#########################
# Lightning Settings
#########################

# Color of lightning segments
lightning-color-r = 1.0
lightning-color-g = 1.0
lightning-color-b = 1.0
lightning-color-a = 1.0

# Width of glow around lightning, relative to segment width
lightning-glow-width = 2.0

# Color of glow around lightning
lightning-glow-color-r = 1.0
lightning-glow-color-g = 0.8
lightning-glow-color-b = 0.8
lightning-glow-color-a = 0.1

# How strong is lightning as a light source, for purposes of illuminating the cloud it's in
lightning-light = 5E4

# How thick is the main branch of the lightning, in pixels
lightning-initial-thickness = 3.5

# Maximum number of lightning segments per branch (controls branch length)
lightning-max-segments-per-branch = 30

# Maximum length of an individual lightning segment
lightning-max-segment-length = 50.0

# Maximum angle between successive segments (degrees)
lightning-max-segment-angle = 50.0

# Odds of a branch spawning off from a segment
lightning-max-branch-probability = 0.08

# Branches that get below this thickness stop (relative to parent branch)
lightning-min-branch-thickness = 0.3

# Branches start at this thickness relative to parent branch
lightning-max-branch-thickness = 0.5

# Each branch thins out at this rate
lightning-thickness-reduction = 0.8

# Whether lightning fires automatically and randomly instead of depending on CloudLayer::ForceLightning
lightning-auto-discharge = yes

# Maximum time between lightning discharges for a given lightning object in ms
lightning-max-discharge-period = 50000

# Time of lightning discharge in ms
lightning-discharge-ms = 500

#########################
# Cloud Settings
#########################

# Sets whether cloud voxels that are completely surrounded by other voxels (and therefore not
# visible) should be culled.
# Surprisingly, this doesn't really happen too often, so the performance you'll get from this
# is pretty minimal and likely not worth the potential anomalies in lighting.
cull-interior-voxels = no

# Texel dimension of the procedural puff textures (should be a power of 2)
# Bigger values look a little nicer, but at a big performance cost. Texture bandwidth
# is our bottleneck.
metaball-texture-dimension = 32

# We add a little randomness to the final color of each metaball, to give clouds more depth
metaball-color-randomness = 0.2

# Take the curvature of the Earth into account when placing cumulus clouds within large cumulus layers.
cumulus-round-earth = yes

# Clouds are "compiled" for faster rendering, but must be redrawn periodically in order
# to properly sort its components relative to the camera. Once the angle from the last camera
# position exceeds this threshold (in degrees), a redraw will be forced.
cumulus-sorting-threshold-angle = 5

# The maximum number of cloud "compiles" to perform per frame. Too many at once can result
# in jerky performance.
cumulus-recompile-budget = 1

# The maximum number of clouds relit per frame when the lighting conditions change. You can
# set this lower in order to spread out the relighting over time, and smooth out the performance
# hit that comes with changing the time of day.
cloud-relight-budget = 1000

# If runtime cloud growth is enabled via CloudLayer::SetCloudAnimationEffects(), this value
# caps the number of clouds that have a simulation run on them per frame, in order to
# maintain performance.
max-cellular-automata-updates-per-frame = 10

# Enable this to allow realtime recomputation of the cloud lighting. It's not as accurate,
# but lets you do real time lapse stuff without taking a huge performance hit. It also
# allows you to enable runtime cloud growth. Note that shadow maps will not be generated
# with this option set to "yes".
cumulus-lighting-quick-and-dirty = yes

# When "quick and dirty" lighting is enabled, the distance a ray of light must pass
# through a cloud volume before being extinguished.
cumulus-lighting-quick-and-dirty-attenuation = 1500

# Switch to simulate cloud growth and extinction over time. You get a performance gain by
# turning this off, although you can get away with leaving it on if you have
# cumulus-lighting-quick-and-dirty enabled. Configure the effect with 
# CloudLayer::SetCloudAnimationEffects().
disable-cloud-growth = no

# If the clouds appear too dark or too light for your tastes, this will modulate the
# ambient term from skylight.
ambient-scattering = 0.68

# The "phase function" controls how much forward and backward scattering occurs within
# the cloud, which will make the parts of the clouds brighter or darker depending on the
# lighting conditions. Lots of forward scattering will transmit sunlight through the cloud,
# backward scattering will reflect it. There are various models of various accuracy and
# computing cost. See "Light Reflection Functions for Simulation of Clouds and Dusty Surfaces"
# by James Blinn (1982)

# Valid phase functions are (in increasing complexity)
# isotropic, anisotropic, rayleigh, lambertian, henyey-greenstein
phase-function = rayleigh

# If using henyey-greenstein, a "g" parameter is required, which is the eccentricity of the modeled
# ellipse for each particle. g=0 degenerates to isotropic; g<0 is mostly forward scattering, g>1 is
# mostly backward scattering.
# This is a double-lobed HG model, so it actually blends between two HG functions using blend factor F.
henyey-greenstein-g1 = 0.85
henyey-greenstein-g2 = -0.1
henyey-greenstein-f = 0.85

# If using anisotropic, a "x" parameter describing the material controls the amount of forward 
# scattering.
anisotropic-x = 0.1

#########################
# Cirrus (also affects cirrocumulus)
#########################

# The rate at which the cloud fades toward the edges if SetFadeTowardEdges is set
cirrus-fade-falloff = 5.0

# Number of vertices per dimension for cirrus deck; affects quality of fog effects.
cirrus-grid-dimension = 10

# Curves vertices of the cirrus cloud with the curvature of the Earth
cirrus-round-earth = yes

# How much light is not reflected away by the cloud
cirrus-extinction = 0.6

# The reflectivity of the cloud itself
cirrus-albedo = 0.9

# Density parameter for exponential fog while inside the cloud; also
# represents max density inside scud
cirrus-fog-density = 0.001

# Fog color inside cloud
cirrus-fog-red = 0.9
cirrus-fog-blue = 0.9
cirrus-fog-green = 0.9

#########################
# Stratus
#########################

# Enable vertex program based heightfield effects
enable-stratus-shader = yes

# The rate at which the cloud fades toward the edges if SetFadeTowardEdges is set
stratus-fade-falloff = 10.0

# Curves vertices of the stratus cloud with the curvature of the Earth
stratus-round-earth = yes

# Number of vertices per dimension for stratus deck; affects quality of fog effects.
stratus-grid-dimension = 50

# Contrast between dark and light extremes of the cloud deck.
stratus-deck-contrast = 0.25

# Scale contrast-adjusted value by this amount
stratus-deck-brightness = 1.0

# Real dimensions of the "infinite" nimbostratus cloud planes.
stratus-deck-width = 200000
stratus-deck-height = 200000

# Depth of a transitional layer into the cloud
stratus-scud-thickness = 300

# How much light gets through the cloud deck
stratus-light-transmission = 0.2

# Density parameter for exponential fog while inside the cloud; also
# represents max density inside scud
stratus-fog-density = 0.001

# Fog color inside cloud
stratus-fog-red = 0.8
stratus-fog-blue = 0.8
stratus-fog-green = 0.8

#########################
# Cumulus Mediocris
#########################

# Size of each metaball voxel in world coordinates
# Making this bigger gives performance gains at the cost of quality.
# Making it smaller gives quality gains at the cost of performance.
cumulus-mediocris-voxel-dimension = 80.0

# Average radius of a droplet in this cloud (in meters)
# Ranges from 4.0-5.8 microns depending on pollution levels (polluted is less)
cumulus-mediocris-droplet-size = 5.0E-6

# Water content (g/m3)
cumulus-mediocris-water-content = 0.26

# Droplets per cubic centimeter
# This actually ranges from 400-1300 depending on pollution levels (polluted is more)
cumulus-mediocris-droplets-per-cubic-cm = 1200

# Albedo of cloud particles (how much light they reflect)
cumulus-mediocris-albedo = 0.88

# Probability of a voxel spontaneously disappearing
cumulus-mediocris-extinction-probability = 0.05

# Probability of a voxel spontaneously entering a phase transition state
cumulus-mediocris-transition-probability = 0.001

# Probability of a voxel spontaneously gaining "humidity"
cumulus-mediocris-vapor-probability = 0.06

# Probability of the cloud ellipsoid's voxels having an initial state of "humidity"
cumulus-mediocris-initial-vapor-probability = 0.3

# Initial evolution steps; reducing this will give performance 
# at cost of having younger clouds
cumulus-mediocris-initial-evolve = 10

# Seconds between cellular automata updates
cumulus-mediocris-time-step-interval = 10

# Cloud generation model
# plank-exponential is described in Plank, V.G., 1969: The size distribution of cumulus
# clouds in representative Florida populations. J. Appl. Meteor., 8, 46-67.

cumulus-mediocris-generation-model = plank-exponential
cumulus-mediocris-generation-chi = 0.984
#cumulus-mediocris-generation-alpha = 0.002317715
cumulus-mediocris-generation-alpha = 0.001
cumulus-mediocris-generation-nu = 0.8
cumulus-mediocris-generation-beta = -0.10
cumulus-mediocris-generation-min-size = 500
cumulus-mediocris-generation-max-size = 2000
cumulus-mediocris-generation-bandwidth = 100

# Cloud distribution model
# random distribution places all clouds randomly (but not overlapping) and does
# not simulate clustering.

cumulus-mediocris-distribution-model = random

#########################
# Cumulus Congestus
#########################

# Size of each metaball voxel in world coordinates
# Making this bigger gives performance gains at the cost of quality.
# Making it smaller gives quality gains at the cost of performance.
cumulus-congestus-voxel-dimension = 300.0

# Average radius of a droplet in this cloud (in meters)
# Ranges from 4.0-5.8 microns depending on pollution levels (polluted is less)
cumulus-congestus-droplet-size = 4.8E-6

# Water content (g/m3)
cumulus-congestus-water-content = 0.26

# Droplets per cubic centimeter
# This actually ranges from 400-1300 depending on pollution levels (polluted is more)
cumulus-congestus-droplets-per-cubic-cm = 460

# Albedo of cloud particles (how much light they reflect)
cumulus-congestus-albedo = 0.9

# Probability of a voxel spontaneously disappearing
cumulus-congestus-extinction-probability = 0.1

# Probability of a voxel spontaneously entering a phase transition state
cumulus-congestus-transition-probability = 0.001

# Probability of a voxel spontaneously gaining "humidity"
cumulus-congestus-vapor-probability = 0.06

# Probability of the cloud ellipsoid's voxels having an initial state of "humidity"
cumulus-congestus-initial-vapor-probability = 0.3

# Initial evolution steps; reducing this will give performance 
# at cost of having younger clouds
cumulus-congestus-initial-evolve = 30

# Modeled updraft used when shearing the cloud with wind (meters/sec)
cumulus-congestus-updraft-speed = 15

# Seconds between cellular automata updates
cumulus-congestus-time-step-interval = 15

# Cloud generation model
# plank-exponential is described in Plank, V.G., 1969: The size distribution of cumulus
# clouds in representative Florida populations. J. Appl. Meteor., 8, 46-67.

cumulus-congestus-generation-model = plank-exponential
cumulus-congestus-generation-chi = 0.984
cumulus-congestus-generation-alpha = 0.001
cumulus-congestus-generation-nu = 0.5
cumulus-congestus-generation-beta = -0.10
cumulus-congestus-generation-min-size = 500
cumulus-congestus-generation-max-size = 5000
cumulus-congestus-generation-bandwidth = 100

# Cloud distribution model
# random distribution places all clouds randomly and does
# not simulate clustering.

cumulus-congestus-distribution-model = random

#########################
# Cumulonimbus
#########################

# Percentage of cloud height at which the "anvil" starts
cumulonimbus-anvil-height = 0.4

# Vertical stretching of virga (rain) plume beneath cloud
cumulonimbus-virga-height = 1.5

# Constriction of cloud shaft relative to anvil
cumulonimbus-shaft-constriction = 3.0

# Velocity of updraft within tower, used to model wind shear (meters / second)
cumulonimbus-updraft-speed = 20

# Probability of a voxel in the anvil being capable of spawning lightning
cumulonimbus-lightning-density = 0.1

# Size of each metaball voxel in world coordinates
# Making this bigger gives performance gains at the cost of quality.
# Making it smaller gives quality gains at the cost of performance.
cumulonimbus-voxel-dimension = 400.0

# Average radius of a droplet in this cloud (in meters)
# Ranges from 7-10 when growing, 9-10 when dissipating
cumulonimbus-droplet-size = 7E-6

# Water content (g/m3) (ranges from 1-3)
cumulonimbus-water-content = 2.0

# Droplets per cubic centimeter
# Generally around 500 for growing and 300 for dissipating
cumulonimbus-droplets-per-cubic-cm = 300

# Terminal velocity of a raindrop. Some general guidelines: 1m/min for fog, 1-2 m/s 
# for drizzle (0.5mm drops), 9 m/s for a downpour (5mm drops), 10 m/s for hail
# Expressed in meters per second.
raindrop-terminal-velocity = 8.0

# Coefficient of drag of a raindrop
raindrop-drag-coefficient = 0.1

# Mass of a raindrop in kg
raindrop-mass-kg = 0.000034

# Radius of a raindrop in m
raindrop-radius-m = 0.0013

# Name of rain texture to use beneath cloud, or none
cumulonimbus-rain-texture = none

# Maximum velocity of wind underneath the cloud
raindrop-max-wind-velocity = 8.0

# Albedo of cloud particles (how much light they reflect)
cumulonimbus-albedo = 0.1

# Probability of a voxel spontaneously disappearing
cumulonimbus-extinction-probability = 0.06

# Probability of a voxel spontaneously entering a phase transition state
cumulonimbus-transition-probability = 0.0001

# Probability of a voxel spontaneously gaining "humidity"
cumulonimbus-vapor-probability = 0.06

# Probability of the cloud ellipsoid's voxels having an initial state of "humidity"
cumulonimbus-initial-vapor-probability = 0.62

# Initial evolution steps; reducing this will give performance 
# at cost of having younger clouds
cumulonimbus-initial-evolve = 10

# Seconds between cellular automata updates
cumulonimbus-time-step-interval = 10

# Cumulonimbus layers consist of a single cloud that fill the layer specified,
# since these clouds are so huge and infrequent.
cumulonimbus-distribution-model = none

#########################
# Stratocumulus
#########################

# Size of each metaball voxel in world coordinates
# Making this bigger gives performance gains at the cost of quality.
# Making it smaller gives quality gains at the cost of performance.
stratocumulus-voxel-dimension = 250.0

# How dense the stratcumulus cloud is (modulates the density specified for the cloud layer)
stratocumulus-density = 3.0

# The rate at which the cloud fades toward the edges if SetFadeTowardEdges is set
stratocumulus-fade-falloff = 10.0

# The maximum dimension of the cloud layer's width or length
stratocumulus-max-size = 50000.0

# The distance between samples taken during real-time ray casting of the
# cloud volume. Higher values will increase performance at the cost of 
# artifacts.
stratocumulus-light-sampling-distance = 100.0

# How much random jitter is introduced in the volume rendering (giving detail to cloud edges.)
stratocumulus-jitter = 1100.0

# Percentage of incident light to add to each voxel from multiple scattering
stratocumulus-multiple-scattering-term = 0.2

# Percentage of skylight to add to each voxel
stratocumulus-skylight-term = 0.15

# Percentage of inscattering light added to directional lighting at each voxel
stratocumulus-inscattering-term = 0.8

# Average effective radius of a droplet in this cloud (in meters)
# Ranges from 5-15 microns depending on pollution levels (polluted is less)
stratocumulus-droplet-size = 6E-6

# Droplets per cubic centimeter
# This actually ranges from 400-1300 depending on pollution levels (polluted is more)
stratocumulus-droplets-per-cubic-cm = 500

# Albedo of cloud particles (how much light they reflect)
stratocumulus-albedo = 0.95

# Probability of a voxel spontaneously disappearing
stratocumulus-extinction-probability = 0.1

# Probability of a voxel spontaneously entering a phase transition state
stratocumulus-transition-probability = 0.001

# Probability of a voxel spontaneously gaining "humidity"
stratocumulus-vapor-probability = 0.1

# Initial evolution steps; reducing this will give performance 
# at cost of having younger clouds
stratocumulus-initial-evolve = 20

# Cloud generation model
# plank-exponential is described in Plank, V.G., 1969: The size distribution of cumulus
# clouds in representative Florida populations. J. Appl. Meteor., 8, 46-67.

stratocumulus-generation-model = plank-exponential
stratocumulus-generation-chi = 0.984
stratocumulus-generation-alpha = 0.001
stratocumulus-generation-nu = 0.5
stratocumulus-generation-beta = -0.10
stratocumulus-generation-min-size = 500
stratocumulus-generation-max-size = 5000
stratocumulus-generation-bandwidth = 100

#########################
# Deprecated Settings
#########################

# We do not provide support or test the results when changing the settings
# below from their defaults.

# Disable the usage of vertex and fragment programs. Will likely cost both
# accuracy and speed at the gain of greater hardware compatibility.

disable-shaders = no

# Disable the use of dynamically generated imposters. Enabling this can
# help conserve memory on your video card, as it renders distant clouds
# as textured quads. However, updating these quads dynamically can cause
# jerky performance.
# Note, imposters are not supported with the DirectX renderers. These are
# separate from the backdrop imposters configured above; the backdrops render
# many clouds to a small set of imposters, while these imposter settings enable
# rendering one cloud per imposter.

disable-imposters = yes

# Texture size for imposters; must be power of 2.
imposter-texture-dimension = 256

# Limit the number of imposter updates per frame to minimize jerkiness
max-imposter-updates-per-frame = 1

# The size of imposter quads is based on the diameter of the cloud, but sometimes it gets
# a little clipped. Setting the slop value over 1.0 protects against this.
imposter-slop-value = 1.2
