reformat light

This commit is contained in:
Shuo Feng 2024-03-14 18:47:29 -04:00
parent 9e9d7351bd
commit 368039b57c
Signed by: sfeng
GPG key ID: 1E83AE6CD1C037B1
2 changed files with 11 additions and 12 deletions

View file

@ -12,9 +12,9 @@ void Light::setUseCenter(bool useCenter) { this->useCenter = useCenter; }
void Light::setIsUse(bool isUse) { this->use = isUse; }
Vector3f Light::getDiffuse() const { return diffuse; }
Vector3f Light::id() const { return id_; }
Vector3f Light::getSpecular() const { return specular; }
Vector3f Light::is() const { return is_; }
bool Light::isUse() const { return use; }
@ -32,13 +32,12 @@ Vector3f PointLight::illumination(const HitRecord &hit,
Vector3f ambient_ = geometry->ka() * geometry->ca();
Vector3f diffuse_ = geometry->kd() * geometry->cd().array() *
diffuse.array() *
Vector3f diffuse_ = geometry->kd() * geometry->cd().array() * id_.array() *
std::max(0.0f, hit.normal().dot(rayDirection));
Vector3f halfWay = (hit.viewDirection() + rayDirection).normalized();
Vector3f specular_ =
geometry->ks() * geometry->cs().array() * specular.array() *
geometry->ks() * geometry->cs().array() * is_.array() *
pow(std::max(0.0f, hit.normal().dot(halfWay)), geometry->phong());
return specular_ + ambient_ + diffuse_;

View file

@ -21,11 +21,11 @@ public:
protected:
Light(Type type, const Vector3f &id, const Vector3f &is)
: type(type), diffuse(id), specular(is) {}
: type_(type), id_(id), is_(is) {}
Type type;
Vector3f diffuse;
Vector3f specular;
Type type_;
Vector3f id_;
Vector3f is_;
Matrix4f transform = Matrix4f::Identity(); // optional member `transform`
unsigned int gridSize = 0; // optional member `n`
bool useCenter = false; // optional member `usecenter`
@ -36,8 +36,8 @@ public:
void setGridSize(unsigned int);
void setUseCenter(bool);
void setIsUse(bool);
Vector3f getDiffuse() const;
Vector3f getSpecular() const;
Vector3f id() const;
Vector3f is() const;
bool isUse() const;
};
@ -60,7 +60,7 @@ public:
: Light(Type::Point, id, is), center(center) {}
PointLight(const AreaLight &al, const Vector3f &center)
: PointLight(al.getDiffuse(), al.getSpecular(), center) {}
: PointLight(al.id(), al.is(), center) {}
virtual Vector3f illumination(const HitRecord &,
const vector<Geometry *> &) const override;