HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
openvdb::OPENVDB_VERSION_NAME::tools::DiffuseShader< GridT, SamplerType > Class Template Reference

Simple diffuse Lambertian surface shader. More...

#include <RayTracer.h>

+ Inheritance diagram for openvdb::OPENVDB_VERSION_NAME::tools::DiffuseShader< GridT, SamplerType >:

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
 Defines the interface of the virtual function that returns a RGB color. More...
 
BaseShadercopy () const override
 
- Public Member Functions inherited from openvdb::OPENVDB_VERSION_NAME::tools::BaseShader
 BaseShader ()
 
 BaseShader (const BaseShader &)=default
 
virtual ~BaseShader ()=default
 

Additional Inherited Members

- Public Types inherited from openvdb::OPENVDB_VERSION_NAME::tools::BaseShader
using RayT = math::Ray< Real >
 

Detailed Description

template<typename GridT = Film::RGBA, typename SamplerType = tools::PointSampler>
class openvdb::OPENVDB_VERSION_NAME::tools::DiffuseShader< GridT, SamplerType >

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).

Definition at line 751 of file RayTracer.h.

Constructor & Destructor Documentation

template<typename GridT = Film::RGBA, typename SamplerType = tools::PointSampler>
openvdb::OPENVDB_VERSION_NAME::tools::DiffuseShader< GridT, SamplerType >::DiffuseShader ( const GridT &  grid)
inline

Definition at line 754 of file RayTracer.h.

template<typename GridT = Film::RGBA, typename SamplerType = tools::PointSampler>
openvdb::OPENVDB_VERSION_NAME::tools::DiffuseShader< GridT, SamplerType >::DiffuseShader ( const DiffuseShader< GridT, SamplerType > &  )
default
template<typename GridT = Film::RGBA, typename SamplerType = tools::PointSampler>
openvdb::OPENVDB_VERSION_NAME::tools::DiffuseShader< GridT, SamplerType >::~DiffuseShader ( )
overridedefault

Member Function Documentation

template<typename GridT = Film::RGBA, typename SamplerType = tools::PointSampler>
BaseShader* openvdb::OPENVDB_VERSION_NAME::tools::DiffuseShader< GridT, SamplerType >::copy ( void  ) const
inlineoverridevirtual

Implements openvdb::OPENVDB_VERSION_NAME::tools::BaseShader.

Definition at line 766 of file RayTracer.h.

template<typename GridT = Film::RGBA, typename SamplerType = tools::PointSampler>
Film::RGBA openvdb::OPENVDB_VERSION_NAME::tools::DiffuseShader< GridT, SamplerType >::operator() ( const Vec3R xyz,
const Vec3R nml,
const Vec3R dir 
) const
inlineoverridevirtual

Defines the interface of the virtual function that returns a RGB color.

Parameters
xyzWorld position of the intersection point.
nmlNormal in world space at the intersection point.
dirDirection of the ray in world space.

Implements openvdb::OPENVDB_VERSION_NAME::tools::BaseShader.

Definition at line 757 of file RayTracer.h.


The documentation for this class was generated from the following file: