Newer
Older
class BackgroundMaterial : public Material {
public:
BackgroundMaterial(const std::shared_ptr<util::Sampler>& texture);
BackgroundMaterial(const std::shared_ptr<util::Sampler>& texture,
const util::Image& distribution);
util::Vec3 albedo(const std::pair<float, float>& uv) const override;
util::Vec3 emission(const std::pair<float, float>& uv) const override;
std::pair<float, float> sampleEmissionProfile() const override;
util::Vec3 scattered_d(const util::Vec3& d,
const util::Vec3& n) const override;
bool scatter(const util::Vec3& d, const util::Vec3& n) const override;
float calculateLightMultiplier(const util::Vec3& d_in,
const util::Vec3& d_out,
const util::Vec3& n) const override;
std::optional<float> emission_pdf(float u, float v) const override;