Newer
Older
#pragma once
#include "Vec3.h"
#include "Sampler.h"
#include <random>
namespace material {
class Material
{
public:
virtual util::Vec3 albedo (float texel_x, float texel_y) = 0;
virtual util::Vec3 emission (float texel_x, float texel_y) = 0;
virtual util::Vec3 scattered_d (const util::Vec3& d,const util::Vec3& n) = 0;
virtual bool scatter () = 0;
};
static std::random_device rd;
static std::mt19937 gen (rd ());
static std::uniform_real_distribution<>dis (-1.0, 1.0);
util::Vec3 rand_vec3 ();
bool in_circle (const util::Vec3& v);
util::Vec3 rand_vec3_in_circle (float r);
}