Components that let entities emit light.
- Reflectible
- Serializable (POD)
- Processed by graphics systems (such as the OpenGLSystem)
putils::Vector3f color;Normalized color.
float diffuseStrength;
float specularStrength;bool castShadows = true;int shadowPCFSamples = 1;Number of samples to take into account for Percentage Closer Filtering. Increasing this will reduce shadow aliasing at the cost of GPU processing time.
int shadowMapSize = 1024;Size of the shadow map texture. Increasing this will increase shadow accuracy at the cost of GPU memory.
float shadowMapBias = .00001f;Bias applied when reading the shadow map. Increasing this will reduce "shadow acne", but also increase the risk of shadows not being applied properly.
Used to represent a directional light, such as the sun.
putils::Vector3f direction;float ambientStrength;float cascadeEnds[KENGINE_CSM_COUNT] = { 50.f };Distances for each "cascade" of the Cascaded Shadow Map.
Used to represent a point light, such as a light bulb.
float constant = 1.f;
float linear = .09f;
float quadratic = .032f;Reference values provided by Ogre3D.
Used to represent a spot light, such as a flash light. Inherits from PointLightComponent.
putils::Vector3f direction;float cutOff = std::cos(12.5f);
float outerCutOff = std::cos(15.f);