Spherical harmonics functionality.
More...
Go to the source code of this file.
|
using | Sh3ScalarCoeffs = ShCoeffs< double, 3 > |
| Double-precision scalar coefficients for third-order spherical harmonics.
|
|
using | Sh3ColorCoeffs = ShCoeffs< Color3d, 3 > |
| Double-precision color coefficients for third-order spherical harmonics.
|
|
|
Sh3ColorCoeffs | projectEnvironment (ConstImagePtr env, bool irradiance=false) |
| Project an environment map to third-order SH, with an optional convolution to convert radiance to irradiance. More...
|
|
ImagePtr | normalizeEnvironment (ConstImagePtr env, float envRadiance, float maxTexelRadiance) |
| Normalize an environment to the given radiance. More...
|
|
void | computeDominantLight (ConstImagePtr env, Vector3 &lightDir, Color3 &lightColor) |
| Compute the dominant light direction and color of an environment map. More...
|
|
ImagePtr | renderEnvironment (const Sh3ColorCoeffs &shEnv, unsigned int width, unsigned int height) |
| Render the given spherical harmonic signal to an environment map. More...
|
|
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. More...
|
|
Spherical harmonics functionality.
◆ computeDominantLight()
Compute the dominant light direction and color of an environment map.
- Parameters
-
env | An environment map in lat-long format. |
lightDir | Returns the dominant light direction of the environment. |
lightColor | Returns the color of the light from the dominant direction. |
◆ normalizeEnvironment()
MX_RENDER_API ImagePtr normalizeEnvironment |
( |
ConstImagePtr |
env, |
|
|
float |
envRadiance, |
|
|
float |
maxTexelRadiance |
|
) |
| |
Normalize an environment to the given radiance.
- Parameters
-
env | An environment map in lat-long format. |
envRadiance | The radiance to which the environment map should be normalized. |
maxTexelRadiance | The maximum radiance allowed for any individual texel of the map. |
- Returns
- A new normalized environment map, in the same format as the original.
◆ projectEnvironment()
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
-
env | An environment map in lat-long format. |
irradiance | If 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.
◆ renderEnvironment()
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
-
shEnv | The color signal of the environment encoded as third-order SH. |
width | The width of the output environment map. |
height | The height of the output environment map. |
- Returns
- An environment map in the lat-long format.
◆ renderReferenceIrradiance()
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
-
env | An environment map in lat-long format. |
width | The width of the output irradiance map. |
height | The height of the output irradiance map. |
- Returns
- An irradiance map in the lat-long format.