New way of handling lights and materials.
This commit is contained in:
12
light.hpp
12
light.hpp
@@ -4,6 +4,9 @@
|
||||
|
||||
#include <glm/vec3.hpp>
|
||||
|
||||
#include "ray.hpp"
|
||||
#include "material.hpp"
|
||||
|
||||
using glm::vec3;
|
||||
|
||||
class Light {
|
||||
@@ -13,8 +16,13 @@ public:
|
||||
vec3 m_specular;
|
||||
vec3 m_ambient;
|
||||
|
||||
Light(): m_position(vec3(0.0f)), m_diffuse(vec3(1.0f)), m_specular(vec3(1.0f)), m_ambient(vec3(0.05f)) { }
|
||||
Light(vec3 _p, vec3 _d, vec3 _s, vec3 _a): m_position(_p), m_diffuse(_d), m_specular(_s), m_ambient(_a) { }
|
||||
float max(float a, float b) const {
|
||||
return a >= b ? a : b;
|
||||
}
|
||||
|
||||
virtual ~Light() { }
|
||||
|
||||
virtual vec3 shade(vec3 normal, Ray & r, Material & m) const = 0;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user