OpenVDB: VolumeRender< IntersectorT, SamplerT > Class Template Reference

OpenVDB 10.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::v10_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

## ◆ AccessorType

using AccessorType = typename GridType::ConstAccessor

## ◆ GridType

using GridType = typename IntersectorT::GridType

## ◆ RayType

using RayType = typename IntersectorT::RayType

## ◆ SamplerType

using SamplerType = tools::GridSampler<AccessorType, SamplerT>

## ◆ ValueType

using ValueType = typename GridType::ValueType

## Constructor & Destructor Documentation

## ◆ VolumeRender() [1/2]

VolumeRender | ( | const IntersectorT & | inter,
|  | BaseCamera & | camera
| ) |  |
| inline

Constructor taking an intersector and a base camera.

## ◆ VolumeRender() [2/2]

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

Copy constructor which creates a thread-safe clone.

## Member Function Documentation

## ◆ operator()()

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

Public method required by tbb::parallel_for.

Warning
  Never call it directly.

## ◆ print()

void print | ( | std::ostream & | os = `std::cout`,
|  | int | verboseLevel = `1`
| ) |  |
| inline

Print parameters, statistics, memory usage and other information.

Parameters

  os | a stream to which to write textual information
  verboseLevel | 1: print parameters only; 2: include grid statistics; 3: include memory usage

## ◆ render()

void render | ( | bool | threaded = `true` | ) | const
| inline

Perform the actual (potentially multithreaded) volume rendering.

## ◆ setAbsorption()

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

Set absorption coefficients.

## ◆ setCamera()

void setCamera | ( | BaseCamera & | camera | ) |
| inline

Set the camera derived from the abstract BaseCamera class.

## ◆ setCutOff()

void setCutOff | ( | Real | cutOff | ) |
| inline

Set the cut-off value for density and transmittance.

## ◆ setIntersector()

void setIntersector | ( | const IntersectorT & | inter | ) |
| inline

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

## ◆ setLightColor()

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

Set the color of the directional light source.

## ◆ setLightDir()

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

Set the vector components of a directional light source.

Exceptions

  ArithmeticError | if input is a null vector.

## ◆ setLightGain()

void setLightGain | ( | Real | gain | ) |
| inline

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

## ◆ setPrimaryStep()

void setPrimaryStep | ( | Real | primaryStep | ) |
| inline

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

## ◆ setScattering()

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

Set Scattering coefficients.

## ◆ setShadowStep()

void setShadowStep | ( | Real | shadowStep | ) |
| inline

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