Loading...
Searching...
No Matches
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>`

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 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

namespace | openvdb
namespace | openvdb::v10_0
namespace | openvdb::v10_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.
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.

## 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

## USE_HITS

#define USE_HITS