Base interface for classes that compute color samples of an environment map.
An environment map uses a horizontal coordinate system with altitude and azimuth coordinates, interpreted as follows, with respect to the view direction:
altitude = +90° : towards zenith of upper hemisphere
altitude = 0° : towards horizon
altitude = -90° : towards zenith of lower hemisphere
azimuth = 0° : northwards
azimuth = +90° : eastwards
azimuth = +/- 180° : southwards
azimuth = -90° : westwards
Usually, environment maps are associated with some topocentric coordinate system in a 3D scene.
Environment maps are used to render background skies and to model the visual appearance of material reflectivity and gloss. For this purpose, an environment map is rasterized into a ColorCube and then encoded as a mipmapped cubemap texture, which in turn is used during rendering. Ambient lighting is computed from the smallest mipmaps, thus mimicking (almost) hemispheric sampling. If an environment map contains a single prominent light feature, it may expose it via the ILightProvider.LightAltitude, ILightProvider.LightAzimuth and ILightProvider.LightSize properties. These will be then used for directional lighting.
Computes the environment color at the given coordinates.
Prepares computation of environment colors via ComputeEnvironmentColor.
When this method is called, the IEnvironmentMap object makes local copies of all parameters that affect the result of ComputeEnvironmentColor, so that subsequent parameter modifications will have no influence. This ensures consistency when calling ComputeEnvironmentColor from multiple threads.
It is not necessary to call this method after creating a new IEnvironmentMap object. It need to be called only after modifying the map properties.
The scale factor to apply to the low-dynamic range color channel values (0..1) returned by ComputeEnvironmentColor, in order to obtain high-dynamic range color channel (0..M). values.
Rasterizes this environment map into a color buffer.
This method calls IEnvironmentMap.ComputeEnvironmentColorPrepare.
Rasterizes this environment map into the given color cube.