HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
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 <openvdb/openvdb.h>
#include <deque>
#include <iostream>
#include <fstream>
#include <limits>
#include <memory>
#include <string>
#include <type_traits>
#include <vector>
+ Include dependency graph for RayTracer.h:

Go to the source code of this file.

Classes

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

Namespaces

 openvdb
 
 openvdb::OPENVDB_VERSION_NAME
 
 openvdb::OPENVDB_VERSION_NAME::tools
 

Macros

#define USE_HITS
 

Functions

template<typename GridT >
void openvdb::OPENVDB_VERSION_NAME::tools::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 openvdb::OPENVDB_VERSION_NAME::tools::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-visualization or as a starting point for a more serious render.

Definition in file RayTracer.h.

Macro Definition Documentation

#define USE_HITS