Cloud Keyframe¶
-
struct CloudKeyframe : public simul::sky::BaseKeyframe
The keyframe structure for clouds, used by simul::clouds::CloudKeyframer.
Public Functions
-
virtual void Save(simul::sky::Output &os) const
Save this keyframe’s values to the stream.
-
virtual void Load(simul::sky::Input &is, simul::base::MemoryInterface *memoryInterface)
Load this keyframe’s values from the stream.
-
virtual bool HasFloat(const char *name) const
Return true if the keyframe has a float value with the given, case-insensitive, name; return false otherwise.
The properties are:
cloudiness
distributionBaseLayer
distributionTransition
upperDensity
localDensity
persistence
cloudBase
cloudHeight
cloudWidth
cloudWidthKm
cloudWidthMetres
directLight
indirectLight
ambientLight
lightAsymmetry
precipitation
fractalAmplitude
edgeSharpness
churn
extinction
rainToSnow
precipitationBaseKm
precipitationWindEffect
precipitationWaver
diffusivity
cache_built
lightning
maxDensityGm3
baseNoiseFactor
offsetx
offsety
rainCentreXKm
rainCentreYKm
rainRadiusKm
rainEdge
virgaStrength
simulation
WorleyNoise
WorleyScale
EdgeWorleyNoise
scalekm
scalekm.x
scalekm.y
scalekm.z
EdgeWorleyScale
-
virtual float GetFloat(const char *name) const
Get a float with the given, case-insensitive, name.
-
virtual void SetFloat(const char *name, float val)
Set a float with the given, case-insensitive, name.
-
virtual bool HasInt(const char *name) const
Return true if the keyframe has an integer or true/false value with the given, case-insensitive, name; return false otherwise.
Octaves
RegionalPrecipitation
LockRainToClouds
-
virtual int GetInt(const char *name) const
Get an int with the given, case-insensitive, name.
-
virtual void SetInt(const char *name, int val)
Set an int with the given, case-insensitive, name.
-
virtual unsigned GetPropertiesChecksum() const
Check for properties that, if altered in the keyframe, would require regeneration of the cloud volume:
-
crossplatform::Quaterniond GetAbsoluteOrientation(const crossplatform::Quaterniond &rel) const
From a relative orientation, get the absolute orientation.
Public Members
-
float cloudiness
The density of the cloud layer at this time.
-
float distribution_base_layer
Start of the transition from the cloud base to the upper cloud (0 to 1)
-
float distribution_transition
The transition from the cloud base to the upper cloud (0 to 1)
-
float upper_density
The proportion of cloud density retained in the upper layer, above the distribution_transition.
-
float cloud_base_km
The base altitude of this cloud layer.
-
float cloud_height_km
The height of the cloud layer, above its base altitude.
-
float cloud_width_km
The width of the cloud layer in km, or the repeat-length.
-
vec3 scale_km
For non-repeating clouds, the shape scale.
-
int octaves
The number of noise octaves used to generate the clouds; default 3.
-
float persistence
The fractal persistence for generating the clouds, default 0.45.
-
float fractal_amplitude
The strength of the fractal edge effect.
-
float edge_sharpness
The sharpness to be applied in rendering a the boundary.
-
float churn
The strength of the cloud edge churning effect - larger values for more turbulent clouds.
-
float precipitation
The amount of rain/snow etc.
-
float rain_to_snow
If zero, precipitation is interpreted as rain. If one, it is snow.
-
float precipitation_base_km
The lowest altitude that the precipitation can occur; the highest altitude is dictated by cloud_base_km.
-
float diffusivity
How much the edges of clouds should be diffused.
-
float max_density_gm3
Grams per cubic metre. Default is 0.5.
-
float base_noise_factor
What proportion of noise is applied at the cloudbase, between 0 and 1.0.
-
vec2 offsetKm
The calculated position offset of this keyframe due to the accumulation of wind motion.
-
float octaves_f
Only used for interpolation - changes will be ignored. See octaves.
-
float simulation
If 1.0, cloud volume is simulated. If 0.0, it is generated by fractal.
-
float worley_noise
How much Worley (cell) noise to apply in cloud generation.
-
float worley_scale
Scale of the Worley noise. Will be locked to an integer if clouds are wrapping.
-
float edge_worley_noise
The strength of the fractal worley edge noise.
-
crossplatform::Quaterniond origin
Origin on the globe for this layer.
-
PrecipitationRegion precipitationRegion
Where rain/snow is found.
-
std::map<sky::uid, CloudVolumeState> cloudVolumeStates
States for cloud volumes listed in the keyframer.
-
virtual void Save(simul::sky::Output &os) const
-
struct PrecipitationRegion¶
A structure defining an area where there is rain or snow. If regional is false, it is everywhere.
Public Members
-
bool regional¶
If true, rain/snow only occurs within the specified region. If false, it occurs everywhere in the cloud keyframe.
-
bool lockToClouds¶
If true, the movement of the region takes into account the wind’s speed and heading.
-
crossplatform::Quaterniond relative_centre¶
Origin on the globe for this Precipitation Region relative to keyframe origin.
-
float radiusKm¶
The radius of the region.
-
float virgaStrength¶
The visual strength of the virga effect when rendered.
-
float edge¶
The edge between zero and one. Small numbers give a sharp edge to the region.
-
float base_radial_km¶
The base altitude of this Precipitation Region from the centre of the planet.
-
bool regional¶