light.
Lights are usually grouped with a Lighting object, which can be used in a
-Pipeline::Pass.
+Sequence::Step.
Lights do not cast shadows by themselves. See ShadowMap for that.
*/
private:
void attenuation(float, float, float);
- void diffuse(float, float, float);
+ void color(float, float, float);
void position(float, float, float, float);
- void specular(float, float, float);
void spot_direction(float, float, float);
void spot_exponent(float);
void spot_cutoff(float);
};
private:
- Color diffuse;
- Color specular;
+ Color color;
Vector4 position;
Vector3 spot_dir;
Vector3 direction;
void update_matrix();
public:
- /** Sets the diffuse (direction-independent) color of the Light. Provided
- to shaders with the name light_sources[i].diffuse. */
- void set_diffuse(const Color &c);
+ /** Sets the color of the Light. Provided
+ to shaders as light_sources[i].color. */
+ void set_color(const Color &);
- /** Sets the specular (direction-dependent) color of the Light. Provided to
- shaders with the name light_sources[i].specular. */
- void set_specular(const Color &c);
+ const Color &get_color() const { return color; }
- const Color &get_diffuse() const { return diffuse; }
- const Color &get_specular() const { return specular; }
+ DEPRECATED void set_diffuse(const Color &c) { set_color(c); }
+ DEPRECATED void set_specular(const Color &) { }
+ DEPRECATED const Color &get_diffuse() const { return color; }
+ DEPRECATED const Color &get_specular() const { return color; }
/** Sets the postion and orientation of the Light from a matrix. Negative Z
axis is used as the spot direction, other axes are ignored. */