CrystalSpace

Public API Reference

Lighting
[Crystal Space 3D Engine]

Classes

struct  iBaseHalo
 This is the basic interface for all types of halos. More...
struct  iCrossHalo
 This is a halo which resembles a cross. More...
struct  iFlareHalo
 This is a halo which resembles a (solar) flare. More...
struct  iLight
 The iLight interface is the SCF interface for the csLight class. More...
struct  iLightCallback
 Set a callback which is called when this light color is changed. More...
struct  iLightFactory
 A light factory. More...
struct  iLightFactoryList
 A list of light factories. More...
struct  iLightIterator
 Iterator to iterate over all static lights in the engine. More...
struct  iLightList
 This structure represents a list of lights. More...
struct  iLightManager
 An engine (3D or iso) can implement this interface for the benefit of mesh objects so that they can request lighting information from the engine. More...
struct  iNovaHalo
 This is a halo which resembles a nova. More...

Defines

#define CS_DEFAULT_LIGHT_LEVEL   20
 Light level that is used when there is no light on the texture.
#define CS_NORMAL_LIGHT_LEVEL   128
 Light level that corresponds to a normally lit texture.

Enumerations

enum  csHaloType { cshtCross, cshtNova, cshtFlare }
 

The possible halo-types.

More...
enum  csLightType { CS_LIGHT_POINTLIGHT, CS_LIGHT_DIRECTIONAL, CS_LIGHT_SPOTLIGHT }
 

Type of lightsource.

More...

Attenuation modes

Attenuation controls how the brightness of a light fades with distance.

Apart from the attenuation mode there are one to tree constants, which change meaning depending on attenuation mode. There are five attenuation formulas: (distance is distance between point for which lighting is computed and the light)

  • no attenuation = light * 1
  • linear attenuation = light * (1 - distance / constant1)
  • inverse attenuation = light / distance
  • realistic attenuation = light / distance^2
  • CLQ, Constant Linear Quadratic = light / (constant1 + constant2*distance + constant3*distance^2)


enum  csLightAttenuationMode {
  CS_ATTN_NONE = 0, CS_ATTN_LINEAR = 1, CS_ATTN_INVERSE = 2, CS_ATTN_REALISTIC = 3,
  CS_ATTN_CLQ = 4
}

Light Dynamic Types



enum  csLightDynamicType { CS_LIGHT_DYNAMICTYPE_STATIC = 1, CS_LIGHT_DYNAMICTYPE_PSEUDO = 2, CS_LIGHT_DYNAMICTYPE_DYNAMIC = 3 }

Light flags



#define CS_LIGHT_ACTIVEHALO   0x80000000
 If this flag is set, the halo for this light is active and is in the engine's queue of active halos.
#define CS_LIGHT_NOSHADOWS   0x00000001
 Indicates that a light should not cast shadows.

Define Documentation

#define CS_DEFAULT_LIGHT_LEVEL   20

Light level that is used when there is no light on the texture.

Definition at line 92 of file light.h.

#define CS_LIGHT_ACTIVEHALO   0x80000000

If this flag is set, the halo for this light is active and is in the engine's queue of active halos.

When halo become inactive, this flag is reset.

Definition at line 60 of file light.h.

#define CS_LIGHT_NOSHADOWS   0x00000001

Indicates that a light should not cast shadows.

Definition at line 53 of file light.h.

#define CS_NORMAL_LIGHT_LEVEL   128

Light level that corresponds to a normally lit texture.

Definition at line 94 of file light.h.


Enumeration Type Documentation

enum csHaloType

The possible halo-types.

Enumerator:
cshtCross 

Cross halo.

cshtNova 

Nova halo.

cshtFlare 

Flare halo.

Definition at line 37 of file halo.h.

Enumerator:
CS_ATTN_NONE 

no attenuation: light * 1

CS_ATTN_LINEAR 

linear attenuation: light * (1 - distance / constant1)

CS_ATTN_INVERSE 

inverse attenuation: light / distance

CS_ATTN_REALISTIC 

realistic attenuation: light / distance^2

CS_ATTN_CLQ 

CLQ, Constant Linear Quadratic: light / (constant1 + constant2*distance + constant3*distance^2).

Definition at line 109 of file light.h.

Enumerator:
CS_LIGHT_DYNAMICTYPE_STATIC 

A fully static light.

Unless you are using shaders/renderloop that treat all lights as dynamic this light cannot move and cannot change color. Shadows are accurate and precalculated (if you use lightmaps).

CS_LIGHT_DYNAMICTYPE_PSEUDO 

A pseudo-dynamic light.

Unless you are using shaders/renderloop that treat all lights as dynamic this light cannot move but it can change color. Shadows are accurate and precalculated (if you use lightmaps).

CS_LIGHT_DYNAMICTYPE_DYNAMIC 

A fully dynamic light.

No shadows are calculated unless you use a shader/renderloop that does that in hardware.

Definition at line 66 of file light.h.

Type of lightsource.

There are currently three types of lightsources:

  • Point lights - have a position. Shines in all directions.
  • Directional lights - have a direction and radius. Shines along it's major axis. The direction is 0,0,1 in light space.
  • Spot lights - have both position and direction. Shines with full strength along major axis and out to the hotspot angle. Between hotspot and outer angle it will falloff, outside outer angle there shines no light. The direction is 0,0,1 in light space.
Enumerator:
CS_LIGHT_POINTLIGHT 

Point light.

CS_LIGHT_DIRECTIONAL 

Directional light.

CS_LIGHT_SPOTLIGHT 

Spot light.

Definition at line 139 of file light.h.


Generated for Crystal Space 2.1 by doxygen 1.6.1