You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
19 lines
602 B
19 lines
602 B
#pragma once
|
|
#include "Vector3.h"
|
|
class Ray;
|
|
class Material {
|
|
public:
|
|
virtual bool Scatter(const Ray& input_ray, const HitPoint& hit_point, Ray& out_ray) = 0;
|
|
};
|
|
class LamberMaterial : public Material {
|
|
public:
|
|
Vector3 mDiffuse;
|
|
LamberMaterial(const Vector3 diffuse) { mDiffuse = diffuse; }
|
|
bool Scatter(const Ray& input_ray, const HitPoint& hit_point, Ray& out_ray);
|
|
};
|
|
class MetalMaterial : public Material {
|
|
public:
|
|
Vector3 mDiffuse;
|
|
MetalMaterial(const Vector3 diffuse) { mDiffuse = diffuse; }
|
|
bool Scatter(const Ray& input_ray, const HitPoint& hit_point, Ray& out_ray);
|
|
};
|