OpenVDB  9.0.1
Public Types | Public Member Functions | List of all members
VolumeRender< IntersectorT, SamplerT > Class Template Reference

A (very) simple multithreaded volume render specifically for scalar density. More...

#include <openvdb/tools/RayTracer.h>

Public Types

using GridType = typename IntersectorT::GridType
 
using RayType = typename IntersectorT::RayType
 
using ValueType = typename GridType::ValueType
 
using AccessorType = typename GridType::ConstAccessor
 
using SamplerType = tools::GridSampler< AccessorType, SamplerT >
 

Public Member Functions

 VolumeRender (const IntersectorT &inter, BaseCamera &camera)
 Constructor taking an intersector and a base camera. More...
 
 VolumeRender (const VolumeRender &other)
 Copy constructor which creates a thread-safe clone. More...
 
void render (bool threaded=true) const
 Perform the actual (potentially multithreaded) volume rendering. More...
 
void setCamera (BaseCamera &camera)
 Set the camera derived from the abstract BaseCamera class. More...
 
void setIntersector (const IntersectorT &inter)
 Set the intersector that performs the actual intersection of the rays against the volume. More...
 
void setLightDir (Real x, Real y, Real z)
 Set the vector components of a directional light source. More...
 
void setLightColor (Real r, Real g, Real b)
 Set the color of the directional light source. More...
 
void setPrimaryStep (Real primaryStep)
 Set the integration step-size in voxel units for the primay ray. More...
 
void setShadowStep (Real shadowStep)
 Set the integration step-size in voxel units for the primay ray. More...
 
void setScattering (Real x, Real y, Real z)
 Set Scattering coefficients. More...
 
void setAbsorption (Real x, Real y, Real z)
 Set absorption coefficients. More...
 
void setLightGain (Real gain)
 Set parameter that imitates multi-scattering. A value of zero implies no multi-scattering. More...
 
void setCutOff (Real cutOff)
 Set the cut-off value for density and transmittance. More...
 
void print (std::ostream &os=std::cout, int verboseLevel=1)
 Print parameters, statistics, memory usage and other information. More...
 
void operator() (const tbb::blocked_range< size_t > &range) const
 Public method required by tbb::parallel_for. More...
 

Detailed Description

template<typename IntersectorT, typename SamplerT = tools::BoxSampler>
class openvdb::v9_0::tools::VolumeRender< IntersectorT, SamplerT >

A (very) simple multithreaded volume render specifically for scalar density.

Included primarily as a reference implementation.

Note
It will only compile if the IntersectorT is templated on a Grid with a floating-point voxel type.

Member Typedef Documentation

using AccessorType = typename GridType::ConstAccessor
using GridType = typename IntersectorT::GridType
using RayType = typename IntersectorT::RayType
using ValueType = typename GridType::ValueType

Constructor & Destructor Documentation

VolumeRender ( const IntersectorT &  inter,
BaseCamera camera 
)
inline

Constructor taking an intersector and a base camera.

VolumeRender ( const VolumeRender< IntersectorT, SamplerT > &  other)
inline

Copy constructor which creates a thread-safe clone.

Member Function Documentation

void operator() ( const tbb::blocked_range< size_t > &  range) const
inline

Public method required by tbb::parallel_for.

Warning
Never call it directly.
void print ( std::ostream &  os = std::cout,
int  verboseLevel = 1 
)
inline

Print parameters, statistics, memory usage and other information.

Parameters
osa stream to which to write textual information
verboseLevel1: print parameters only; 2: include grid statistics; 3: include memory usage
void render ( bool  threaded = true) const
inline

Perform the actual (potentially multithreaded) volume rendering.

void setAbsorption ( Real  x,
Real  y,
Real  z 
)
inline

Set absorption coefficients.

void setCamera ( BaseCamera camera)
inline

Set the camera derived from the abstract BaseCamera class.

void setCutOff ( Real  cutOff)
inline

Set the cut-off value for density and transmittance.

void setIntersector ( const IntersectorT &  inter)
inline

Set the intersector that performs the actual intersection of the rays against the volume.

void setLightColor ( Real  r,
Real  g,
Real  b 
)
inline

Set the color of the directional light source.

void setLightDir ( Real  x,
Real  y,
Real  z 
)
inline

Set the vector components of a directional light source.

Exceptions
ArithmeticErrorif input is a null vector.
void setLightGain ( Real  gain)
inline

Set parameter that imitates multi-scattering. A value of zero implies no multi-scattering.

void setPrimaryStep ( Real  primaryStep)
inline

Set the integration step-size in voxel units for the primay ray.

void setScattering ( Real  x,
Real  y,
Real  z 
)
inline

Set Scattering coefficients.

void setShadowStep ( Real  shadowStep)
inline

Set the integration step-size in voxel units for the primay ray.