paysages3d/src/rendering/clouds/clo_density.h

42 lines
1.1 KiB
C

#ifndef _PAYSAGES_CLOUDS_DENSITY_H_
#define _PAYSAGES_CLOUDS_DENSITY_H_
#include "public.h"
/**
* Coverage/density management in a cloud layer.
*/
/**
* Get the coverage of a cloud layer [0.0;1.0]
*
* 0.0 means no cloud is present.
* 1.0 means full layer.
*/
RENDERINGSHARED_EXPORT double cloudsGetLayerCoverage(CloudsLayerDefinition* layer, Vector3 location);
/**
* Get the global density of a cloud layer at a given point [0.0;1.0].
*
* 0.0 means no cloud is present.
* 1.0 means full density (deep inside cloud).
*/
RENDERINGSHARED_EXPORT double cloudsGetLayerDensity(CloudsLayerDefinition* layer, Vector3 location, double coverage);
/**
* Get the local density of a cloud layer at a given point inside an edge [0.0;1.0].
*/
RENDERINGSHARED_EXPORT double cloudsGetEdgeDensity(CloudsLayerDefinition* layer, Vector3 location, double layer_density);
/*
* Bind fake density functions to a renderer.
*/
RENDERINGSHARED_EXPORT void cloudsBindFakeDensityToRenderer(CloudsRenderer* renderer);
/*
* Bind real density functions to a renderer.
*/
RENDERINGSHARED_EXPORT void cloudsBindRealDensityToRenderer(CloudsRenderer* renderer);
#endif