Skip to content
Snippets Groups Projects
Commit 2e0197bf authored by Yoel's avatar Yoel
Browse files

Added texels to SurfacePoints

parent 13829265
No related branches found
No related tags found
No related merge requests found
......@@ -6,18 +6,19 @@
namespace util {
SurfacePoint::SurfacePoint(const util::Vec3& point, const util::Vec3& n,
const std::pair<float, float>& uv,
const std::shared_ptr<material::Material>& material)
: x(point), n(n), material(material) {
: x(point), n(n), uv(uv), material(material) {
}
cam::Ray SurfacePoint::scattered_ray(const cam::Ray& inc_ray) const {
return cam::Ray(x, material->scattered_d(inc_ray.d, n), cam::epsilon,
inc_ray.tmax, true);
}
util::Vec3 SurfacePoint::albedo() const {
return material->albedo(0, 0);
return material->albedo(uv);
}
util::Vec3 SurfacePoint::emission() const {
return material->emission(0, 0);
return material->emission(uv);
}
bool SurfacePoint::scatter(const util::Vec3& d, const util::Vec3& n) const {
return material->scatter(d, n);
......@@ -28,6 +29,9 @@ util::Vec3 SurfacePoint::point() const {
util::Vec3 SurfacePoint::normal() const {
return n;
}
std::pair<float, float> SurfacePoint::texel() const {
return uv;
}
float SurfacePoint::calculateLightMultiplier(const util::Vec3& d_in,
const util::Vec3& d_out,
const util::Vec3& n) const {
......
......@@ -7,23 +7,25 @@ namespace util {
class SurfacePoint {
public:
SurfacePoint(const util::Vec3& point, const util::Vec3& n,
const std::pair<float, float>& uv,
const std::shared_ptr<material::Material>& material);
cam::Ray scattered_ray(const cam::Ray& inc_ray) const;
util::Vec3 albedo() const; // TODO TexelPos
util::Vec3 emission() const; // TODO TexelPos
util::Vec3 albedo() const;
util::Vec3 emission() const;
bool scatter(const util::Vec3& d, const util::Vec3& n) const;
util::Vec3 point() const;
util::Vec3 normal() const;
std::pair<float, float> texel() const;
float calculateLightMultiplier(const util::Vec3& d_in,
const util::Vec3& d_out,
const util::Vec3& n) const;
// Attributes
// TODO TexelPos
std::shared_ptr<material::Material> material;
private:
util::Vec3 x, n;
std::pair<float, float> uv;
};
} // namespace util
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment