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 | setEnvIrradianceMap (ImagePtr map) |
Set the environment irradiance map. More... | |
ImagePtr | getEnvIrradianceMap () const |
Return the environment irradiance map. More... | |
void | setAlbedoTable (ImagePtr table) |
Set the directional albedo table. More... | |
ImagePtr | getAlbedoTable () const |
Return the directional albedo table. More... | |
void | setEnvSampleCount (int count) |
Set the environment lighting sample count. More... | |
int | getEnvSampleCount () const |
Return the environment lighting sample count. 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 |
ImagePtr | _envRadianceMap |
ImagePtr | _envIrradianceMap |
ImagePtr | _albedoTable |
int | _envSampleCount |
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 32 of file LightHandler.h.
|
inline |
Definition at line 35 of file LightHandler.h.
|
inlinevirtual |
Definition at line 42 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 45 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 121 of file LightHandler.h.
|
inline |
Return whether direct lighting is enabled.
Definition at line 69 of file LightHandler.h.
|
inline |
Return the environment irradiance map.
Definition at line 109 of file LightHandler.h.
|
inline |
Return the environment radiance map.
Definition at line 97 of file LightHandler.h.
|
inline |
Return the environment lighting sample count.
Definition at line 133 of file LightHandler.h.
Return the first light source, if any, of the given category.
Definition at line 158 of file LightHandler.h.
|
inline |
Return whether indirect lighting is enabled.
Definition at line 81 of file LightHandler.h.
Get a list of identifiers associated with a given light nodedef.
Definition at line 175 of file LightHandler.h.
Return the vector of light sources.
Definition at line 152 of file LightHandler.h.
|
inline |
Return the light transform.
Definition at line 57 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 115 of file LightHandler.h.
|
inline |
Set whether direct lighting is enabled.
Definition at line 63 of file LightHandler.h.
Set the environment irradiance map.
Definition at line 103 of file LightHandler.h.
Set the environment radiance map.
Definition at line 91 of file LightHandler.h.
Set the environment lighting sample count.
Definition at line 127 of file LightHandler.h.
|
inline |
Set whether indirect lighting is enabled.
Definition at line 75 of file LightHandler.h.
Set the vector of light sources.
Definition at line 146 of file LightHandler.h.
Set the light transform.
Definition at line 51 of file LightHandler.h.
|
protected |
Definition at line 204 of file LightHandler.h.
|
protected |
Definition at line 199 of file LightHandler.h.
|
protected |
Definition at line 203 of file LightHandler.h.
|
protected |
Definition at line 202 of file LightHandler.h.
|
protected |
Definition at line 205 of file LightHandler.h.
|
protected |
Definition at line 200 of file LightHandler.h.
Definition at line 208 of file LightHandler.h.
|
protected |
Definition at line 207 of file LightHandler.h.
|
protected |
Definition at line 198 of file LightHandler.h.