OpenVDB  6.2.1
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 <deque>
#include <iostream>
#include <fstream>
#include <limits>
#include <memory>
#include <string>
#include <type_traits>
#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< GridT, SamplerType >
 Shader that produces a simple matte. More...
 
class  MatteShader< Film::RGBA, SamplerType >
 
class  NormalShader< GridT, SamplerType >
 Color shader that treats the surface normal (x, y, z) as an RGB color. More...
 
class  NormalShader< Film::RGBA, SamplerType >
 
class  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  PositionShader< Film::RGBA, SamplerType >
 
class  DiffuseShader< GridT, SamplerType >
 Simple diffuse Lambertian surface shader. More...
 
class  DiffuseShader< Film::RGBA, SamplerType >
 

Namespaces

 openvdb
 
 openvdb::v6_2
 
 openvdb::v6_2::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-visualization or as a starting point for a more serious render.

Macro Definition Documentation

#define USE_HITS