![]() |
OpenVDB 13.0.1
|
Simple diffuse Lambertian surface shader. More...
#include <openvdb/tools/RayTracer.h>
Public Types | |
| using | RayT = math::Ray<Real> |
Public Member Functions | |
| DiffuseShader (const GridT &grid) | |
| DiffuseShader (const DiffuseShader &)=default | |
| ~DiffuseShader () override=default | |
| Film::RGBA | operator() (const Vec3R &xyz, const Vec3R &normal, const Vec3R &rayDir) const override |
Sample the color grid at xyz and apply Lambertian shading based on the surface normal and ray direction. | |
| BaseShader * | copy () const override |
Simple diffuse Lambertian surface shader.
The diffuse color can either be constant (if GridT = Film::RGBA which is the default) or defined in a separate Vec3 color grid. Lambertian implies that the (radiant) intensity is directly proportional to the cosine of the angle between the surface normal and the direction of the light source. Use SamplerType to define the order of interpolation (default is zero order, i.e. closes-point).
|
inline |
|
default |
|
overridedefault |
|
inlineoverridevirtual |
Implements BaseShader.
|
inlineoverridevirtual |
Sample the color grid at xyz and apply Lambertian shading based on the surface normal and ray direction.
Implements BaseShader.