HDK
|
#include <LightHandler.h>
Public Member Functions | |
LightHandler () | |
virtual | ~LightHandler () |
Global State | |
void | setLightTransform (const Matrix44 &mat) |
Set the light transform. More... | |
Matrix44 | getLightTransform () const |
Return the light transform. More... | |
void | setDirectLighting (bool enable) |
Set whether direct lighting is enabled. More... | |
bool | getDirectLighting () const |
Return whether direct lighting is enabled. More... | |
void | setIndirectLighting (bool enable) |
Set whether indirect lighting is enabled. More... | |
bool | getIndirectLighting () const |
Return whether indirect lighting is enabled. More... | |
Environment Lighting | |
void | setEnvRadianceMap (ImagePtr map) |
Set the environment radiance map. More... | |
ImagePtr | getEnvRadianceMap () const |
Return the environment radiance map. More... | |
void | setEnvPrefilteredMap (ImagePtr map) |
Set the environment radiance map for the prefiltered environment lighting model. More... | |
ImagePtr | getEnvPrefilteredMap () const |
Return the environment radiance map for the prefiltered environment lighting model. More... | |
void | setUsePrefilteredMap (bool val) |
Set whether to use the prefiltered environment lighting model. More... | |
bool | getUsePrefilteredMap () |
Return whether to use the prefiltered environment lighting model. More... | |
void | setEnvIrradianceMap (ImagePtr map) |
Set the environment irradiance map. More... | |
ImagePtr | getEnvIrradianceMap () const |
Return the environment irradiance map. More... | |
void | setEnvSampleCount (int count) |
Set the environment lighting sample count. More... | |
int | getEnvSampleCount () const |
Return the environment lighting sample count. More... | |
void | setEnvLightIntensity (const float intensity) |
Set the environment light intensity. More... | |
float | getEnvLightIntensity () |
Return the environment light intensity. More... | |
void | setRefractionTwoSided (bool enable) |
Set the two-sided refraction property. More... | |
int | getRefractionTwoSided () const |
Return the two-sided refraction property. More... | |
Albedo Table | |
void | setAlbedoTable (ImagePtr table) |
Set the directional albedo table. More... | |
ImagePtr | getAlbedoTable () const |
Return the directional albedo table. More... | |
Light Sources | |
void | addLightSource (NodePtr node) |
Add a light source. More... | |
void | setLightSources (const vector< NodePtr > &lights) |
Set the vector of light sources. More... | |
const vector< NodePtr > & | getLightSources () const |
Return the vector of light sources. More... | |
NodePtr | getFirstLightOfCategory (const string &category) |
Return the first light source, if any, of the given category. More... | |
Light IDs | |
const std::unordered_map < string, unsigned int > & | getLightIdMap () const |
Get a list of identifiers associated with a given light nodedef. More... | |
LightIdMap | computeLightIdMap (const vector< NodePtr > &nodes) |
void | findLights (DocumentPtr doc, vector< NodePtr > &lights) |
void | registerLights (DocumentPtr doc, const vector< NodePtr > &lights, GenContext &context) |
Static Public Member Functions | |
static LightHandlerPtr | create () |
Create a new light handler. More... | |
Protected Attributes | |
Matrix44 | _lightTransform |
bool | _directLighting |
bool | _indirectLighting |
bool | _usePrefilteredMap |
ImagePtr | _envRadianceMap |
ImagePtr | _envPrefilteredMap |
ImagePtr | _envIrradianceMap |
float | _envLightIntensity |
int | _envSampleCount |
bool | _refractionTwoSided |
ImagePtr | _albedoTable |
vector< NodePtr > | _lightSources |
std::unordered_map< string, unsigned int > | _lightIdMap |
Utility light handler for creating and providing light data for shader binding.
Definition at line 33 of file LightHandler.h.
|
inline |
Definition at line 36 of file LightHandler.h.
|
inlinevirtual |
Definition at line 46 of file LightHandler.h.
LightIdMap LightHandler::computeLightIdMap | ( | const vector< NodePtr > & | nodes | ) |
From a set of nodes, create a mapping of corresponding nodedef identifiers to numbers
|
inlinestatic |
Create a new light handler.
Definition at line 49 of file LightHandler.h.
void LightHandler::findLights | ( | DocumentPtr | doc, |
vector< NodePtr > & | lights | ||
) |
Find lights to use based on an input document
doc | Document to scan for lights |
lights | List of lights found in document |
|
inline |
Return the directional albedo table.
Definition at line 189 of file LightHandler.h.
|
inline |
Return whether direct lighting is enabled.
Definition at line 73 of file LightHandler.h.
|
inline |
Return the environment irradiance map.
Definition at line 137 of file LightHandler.h.
|
inline |
Return the environment light intensity.
Definition at line 161 of file LightHandler.h.
|
inline |
Return the environment radiance map for the prefiltered environment lighting model.
Definition at line 113 of file LightHandler.h.
|
inline |
Return the environment radiance map.
Definition at line 101 of file LightHandler.h.
|
inline |
Return the environment lighting sample count.
Definition at line 149 of file LightHandler.h.
Return the first light source, if any, of the given category.
Definition at line 214 of file LightHandler.h.
|
inline |
Return whether indirect lighting is enabled.
Definition at line 85 of file LightHandler.h.
Get a list of identifiers associated with a given light nodedef.
Definition at line 231 of file LightHandler.h.
|
inline |
Return the vector of light sources.
Definition at line 208 of file LightHandler.h.
|
inline |
Return the light transform.
Definition at line 61 of file LightHandler.h.
|
inline |
Return the two-sided refraction property.
Definition at line 173 of file LightHandler.h.
|
inline |
Return whether to use the prefiltered environment lighting model.
Definition at line 125 of file LightHandler.h.
void LightHandler::registerLights | ( | DocumentPtr | doc, |
const vector< NodePtr > & | lights, | ||
GenContext & | context | ||
) |
Register light node definitions and light count with a given generation context
doc | Document containing light nodes and definitions |
lights | Lights to register |
context | Context to update |
Set the directional albedo table.
Definition at line 183 of file LightHandler.h.
|
inline |
Set whether direct lighting is enabled.
Definition at line 67 of file LightHandler.h.
Set the environment irradiance map.
Definition at line 131 of file LightHandler.h.
Set the environment light intensity.
Definition at line 155 of file LightHandler.h.
Set the environment radiance map for the prefiltered environment lighting model.
Definition at line 107 of file LightHandler.h.
Set the environment radiance map.
Definition at line 95 of file LightHandler.h.
Set the environment lighting sample count.
Definition at line 143 of file LightHandler.h.
|
inline |
Set whether indirect lighting is enabled.
Definition at line 79 of file LightHandler.h.
Set the vector of light sources.
Definition at line 202 of file LightHandler.h.
Set the light transform.
Definition at line 55 of file LightHandler.h.
|
inline |
Set the two-sided refraction property.
Definition at line 167 of file LightHandler.h.
|
inline |
Set whether to use the prefiltered environment lighting model.
Definition at line 119 of file LightHandler.h.
|
protected |
Definition at line 267 of file LightHandler.h.
|
protected |
Definition at line 255 of file LightHandler.h.
|
protected |
Definition at line 261 of file LightHandler.h.
|
protected |
Definition at line 262 of file LightHandler.h.
|
protected |
Definition at line 260 of file LightHandler.h.
|
protected |
Definition at line 259 of file LightHandler.h.
|
protected |
Definition at line 263 of file LightHandler.h.
|
protected |
Definition at line 256 of file LightHandler.h.
Definition at line 270 of file LightHandler.h.
|
protected |
Definition at line 269 of file LightHandler.h.
|
protected |
Definition at line 254 of file LightHandler.h.
|
protected |
Definition at line 265 of file LightHandler.h.
|
protected |
Definition at line 257 of file LightHandler.h.