OpenVDB  2.3.0
Classes | Namespaces | Macros | Functions
RayTracer.h File Reference

Defines two simple but multithreaded renders, a level-set ray tracer and a volume render. To support these renders we also define perspective and orthographic cameras (both designed to mimic a Houdini camera), a Film class and some rather naive shaders. More...

#include <openvdb/Types.h>
#include <openvdb/math/BBox.h>
#include <openvdb/math/Ray.h>
#include <openvdb/math/Math.h>
#include <openvdb/tools/RayIntersector.h>
#include <openvdb/tools/Interpolation.h>
#include <boost/scoped_ptr.hpp>
#include <boost/scoped_array.hpp>
#include <vector>

Go to the source code of this file.

Classes

class  LevelSetRayTracer< GridT, IntersectorT >
 A (very) simple multithreaded ray tracer specifically for narrow-band level sets. More...
 
class  VolumeRender< IntersectorT, SamplerT >
 A (very) simple multithreaded volume render specifically for scalar density. More...
 
class  Film
 A simple class that allows for concurrent writes to pixels in an image, background initialization of the image, and PPM or EXR file output. More...
 
struct  Film::RGBA
 Floating-point RGBA components in the range [0, 1]. More...
 
class  BaseCamera
 Abstract base class for the perspective and orthographic cameras. More...
 
class  PerspectiveCamera
 
class  OrthographicCamera
 
class  BaseShader
 Abstract base class for the shaders. More...
 
class  MatteShader
 Shader that produces a simple matte. More...
 
class  NormalShader
 Color shader that treats the surface normal (x, y, z) as an RGB color. More...
 
class  PositionShader
 
class  DiffuseShader
 Simple diffuse Lambertian surface shader. More...
 

Namespaces

 openvdb
 
 openvdb::v2_3_0
 
 openvdb::v2_3_0::tools
 

Macros

#define USE_HITS
 

Functions

template<typename GridT >
void rayTrace (const GridT &, const BaseShader &, BaseCamera &, size_t pixelSamples=1, unsigned int seed=0, bool threaded=true)
 Ray-trace a volume. More...
 
template<typename GridT , typename IntersectorT >
void rayTrace (const GridT &, const IntersectorT &, const BaseShader &, BaseCamera &, size_t pixelSamples=1, unsigned int seed=0, bool threaded=true)
 Ray-trace a volume using a given ray intersector. More...
 

Detailed Description

Defines two simple but multithreaded renders, a level-set ray tracer and a volume render. To support these renders we also define perspective and orthographic cameras (both designed to mimic a Houdini camera), a Film class and some rather naive shaders.

Author
Ken Museth
Note
These classes are included mainly as reference implementations for ray-tracing of OpenVDB volumes. In other words they are not intended for production-quality rendering, but could be used for fast pre-visualiztion or as a startingpoint for a more serious render.

Macro Definition Documentation

#define USE_HITS