Separated BRDF from light source.

This commit is contained in:
Miguel Angel Astor Romero
2017-01-11 14:51:21 -04:00
parent a9670e93f0
commit f150f8f24c
13 changed files with 94 additions and 66 deletions

View File

@@ -10,22 +10,14 @@ public:
float m_lin_att;
float m_quad_att;
PointLight(): m_const_att(1.0f), m_lin_att(0.0f), m_quad_att(0.0f) {
m_position = vec3(0.0f);
m_diffuse = vec3(1.0f);
m_specular = vec3(1.0f);
}
PointLight(): Light(), m_const_att(1.0f), m_lin_att(0.0f), m_quad_att(0.0f) { }
PointLight(vec3 _p, vec3 _d, vec3 _s, float _c, float _l, float _q): m_const_att(_c), m_lin_att(_l), m_quad_att(_q) {
m_position = _p;
m_diffuse = _d;
m_specular = _s;
}
PointLight(BRDF * _brdf, vec3 _p, vec3 _d, vec3 _s, float _c, float _l, float _q): Light(_brdf, _p, _d, _s), m_const_att(_c), m_lin_att(_l), m_quad_att(_q) { }
virtual vec3 direction(vec3 point);
virtual float distance(vec3 point);
virtual vec3 diffuse(vec3 normal, Ray & r, float t, Material & m) const;
virtual vec3 specular(vec3 normal, Ray & r, float t, Material & m) const;
virtual vec3 diffuse(vec3 normal, Ray & r, vec3 i_pos, Material & m) const;
virtual vec3 specular(vec3 normal, Ray & r, vec3 i_pos, Material & m) const;
};
#endif