Nori

include/nori/gkdtree.h File Reference

#include <nori/bbox.h>
#include <boost/static_assert.hpp>
#include <boost/tuple/tuple.hpp>
#include <QElapsedTimer>
#include <QWaitCondition>
#include <QMutex>
#include <QThread>
#include <stack>
#include <map>

Go to the source code of this file.

Classes

class  OrderedChunkAllocator
 Special "ordered" memory allocator. More...
struct  OrderedChunkAllocator::Chunk
class  BlockedVector< T, BlockSize >
 Basic vector implementation, which stores all data in a list of fixed-sized blocks. More...
class  ClassificationStorage
 Compact storage for primitive classifcation. More...
class  KDTreeBase< BoundingBoxType >
 Base class of all kd-trees. More...
struct  KDTreeBase< BoundingBoxType >::KDNode
 KD-tree node in 8 bytes. More...
class  GenericKDTree< BoundingBoxType, TreeConstructionHeuristic, Derived >
 Optimized KD-tree acceleration data structure for n-dimensional (n<=4) shapes and various queries on them. More...
struct  GenericKDTree< BoundingBoxType, TreeConstructionHeuristic, Derived >::EdgeEvent
 Describes the beginning or end of a primitive when projected onto a certain dimension. More...
struct  GenericKDTree< BoundingBoxType, TreeConstructionHeuristic, Derived >::EdgeEventOrdering
 Edge event comparison functor. More...
struct  GenericKDTree< BoundingBoxType, TreeConstructionHeuristic, Derived >::SplitCandidate
 Data type for split candidates computed by the O(n log n) greedy optimization method. More...
struct  GenericKDTree< BoundingBoxType, TreeConstructionHeuristic, Derived >::BuildContext
 Per-thread context used to manage memory allocations, also records some useful statistics. More...
struct  GenericKDTree< BoundingBoxType, TreeConstructionHeuristic, Derived >::BuildInterface
 Communication data structure used to pass jobs to kd-tree builder threads. More...
class  GenericKDTree< BoundingBoxType, TreeConstructionHeuristic, Derived >::TreeBuilder
 kd-tree builder thread More...
struct  GenericKDTree< BoundingBoxType, TreeConstructionHeuristic, Derived >::MinMaxBins
 Min-max binning as described in "Highly Parallel Fast KD-tree Construction for Interactive Ray Tracing of Dynamic Scenes" by M. Shevtsov, A. Soupikov and A. Kapustin. More...
class  SurfaceAreaHeuristic3
 Implements the 3D surface area heuristic so that it can be used by the GenericKDTree construction algorithm. More...

Defines

#define NORI_KD_MAXDEPTH   48
#define NORI_KD_VERBOSE   0
 Set to 1 to display various statistics about the kd-tree.
#define NORI_KD_MIN_ALLOC   512*1024
 OrderedChunkAllocator: don't create chunks smaller than 512 KiB.
#define NORI_KD_BLOCKSIZE_KD   (512*1024/sizeof(KDNode))
 Allocate nodes & index lists in blocks of 512 KiB.
#define NORI_KD_BLOCKSIZE_IDX   (512*1024/sizeof(uint32_t))
#define NORI_KD_BBOX_EPSILON   1e-3f
 To avoid numerical issues, the size of the scene bounding box is increased by this amount.

Define Documentation

#define NORI_KD_BBOX_EPSILON   1e-3f

To avoid numerical issues, the size of the scene bounding box is increased by this amount.

Definition at line 61 of file gkdtree.h.

#define NORI_KD_BLOCKSIZE_IDX   (512*1024/sizeof(uint32_t))

Definition at line 55 of file gkdtree.h.

#define NORI_KD_BLOCKSIZE_KD   (512*1024/sizeof(KDNode))

Allocate nodes & index lists in blocks of 512 KiB.

Definition at line 54 of file gkdtree.h.

#define NORI_KD_MAXDEPTH   48

Compile-time KD-tree depth limit. Allows to put certain data structures on the stack

Definition at line 45 of file gkdtree.h.

#define NORI_KD_MIN_ALLOC   512*1024

OrderedChunkAllocator: don't create chunks smaller than 512 KiB.

Definition at line 51 of file gkdtree.h.

#define NORI_KD_VERBOSE   0

Set to 1 to display various statistics about the kd-tree.

Definition at line 48 of file gkdtree.h.

 All Classes Files Functions Variables Typedefs Enumerations Enumerator Defines