HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Harmonics.h File Reference
+ Include dependency graph for Harmonics.h:

Go to the source code of this file.

Classes

class  ShCoeffs< C, B >
 

Typedefs

using Sh3ScalarCoeffs = ShCoeffs< double, 3 >
 Double-precision scalar coefficients for third-order spherical harmonics. More...
 
using Sh3ColorCoeffs = ShCoeffs< Color3d, 3 >
 Double-precision color coefficients for third-order spherical harmonics. More...
 

Functions

MX_RENDER_API Sh3ColorCoeffs projectEnvironment (ConstImagePtr env, bool irradiance=false)
 
MX_RENDER_API ImagePtr normalizeEnvironment (ConstImagePtr env, float envRadiance, float maxTexelRadiance)
 
MX_RENDER_API void computeDominantLight (ConstImagePtr env, Vector3 &lightDir, Color3 &lightColor)
 
MX_RENDER_API ImagePtr renderEnvironment (const Sh3ColorCoeffs &shEnv, unsigned int width, unsigned int height)
 
MX_RENDER_API ImagePtr renderReferenceIrradiance (ConstImagePtr env, unsigned int width, unsigned int height)
 

Detailed Description

Spherical harmonics functionality

Definition in file Harmonics.h.

Typedef Documentation

Double-precision color coefficients for third-order spherical harmonics.

Definition at line 62 of file Harmonics.h.

using Sh3ScalarCoeffs = ShCoeffs<double, 3>

Double-precision scalar coefficients for third-order spherical harmonics.

Definition at line 59 of file Harmonics.h.

Function Documentation

MX_RENDER_API void computeDominantLight ( ConstImagePtr  env,
Vector3 lightDir,
Color3 lightColor 
)

Compute the dominant light direction and color of an environment map.

Parameters
envAn environment map in lat-long format.
lightDirReturns the dominant light direction of the environment.
lightColorReturns the color of the light from the dominant direction.
MX_RENDER_API ImagePtr normalizeEnvironment ( ConstImagePtr  env,
float  envRadiance,
float  maxTexelRadiance 
)

Normalize an environment to the given radiance.

Parameters
envAn environment map in lat-long format.
envRadianceThe radiance to which the environment map should be normalized.
maxTexelRadianceThe maximum radiance allowed for any individual texel of the map.
Returns
A new normalized environment map, in the same format as the original.
MX_RENDER_API Sh3ColorCoeffs projectEnvironment ( ConstImagePtr  env,
bool  irradiance = false 
)

Project an environment map to third-order SH, with an optional convolution to convert radiance to irradiance.

Parameters
envAn environment map in lat-long format.
irradianceIf true, then the returned signal will be convolved by a clamped cosine kernel to generate irradiance.
Returns
The projection of the environment to third-order SH.
MX_RENDER_API ImagePtr renderEnvironment ( const Sh3ColorCoeffs shEnv,
unsigned int  width,
unsigned int  height 
)

Render the given spherical harmonic signal to an environment map.

Parameters
shEnvThe color signal of the environment encoded as third-order SH.
widthThe width of the output environment map.
heightThe height of the output environment map.
Returns
An environment map in the lat-long format.
MX_RENDER_API ImagePtr renderReferenceIrradiance ( ConstImagePtr  env,
unsigned int  width,
unsigned int  height 
)

Render a reference irradiance map from the given environment map, using brute-force computations for a slow but accurate result.

Parameters
envAn environment map in lat-long format.
widthThe width of the output irradiance map.
heightThe height of the output irradiance map.
Returns
An irradiance map in the lat-long format.