Lambertian class

A perfectly diffuse (Lambertian) material.

Base classes

class Material
A base class used to represent surface material properties.

Public functions

auto scatter(const Ray3f& ray, const HitInfo& hit, Color3f& attenuation, Ray3f& scattered) const -> bool override
Compute the scattered direction scattered at a surface hitpoint.

Public variables

Color3f albedo
The diffuse color (fraction of light that is reflected per color channel).

Function documentation

bool Lambertian::scatter(const Ray3f& ray, const HitInfo& hit, Color3f& attenuation, Ray3f& scattered) const override

Compute the scattered direction scattered at a surface hitpoint.

Parameters
ray in incoming ray
hit in the ray's intersection with the surface
attenuation in how much the light should be attenuated
scattered in the direction light should be scattered
Returns bool True if the surface scatters light

The base Material does not scatter any light, so it simply returns false.