Mitsuba Renderer  0.5.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
gkdtree.h File Reference
#include <mitsuba/core/timer.h>
#include <mitsuba/core/lock.h>
#include <boost/static_assert.hpp>
#include <stack>

Go to the source code of this file.

Classes

class  mitsuba::OrderedChunkAllocator
 Special "ordered" memory allocator. More...
 
class  mitsuba::BlockedVector< T, BlockSize >
 Basic vector implementation, which stores all data in a list of fixed-sized blocks. More...
 
class  mitsuba::ClassificationStorage
 Compact storage for primitive classifcation. More...
 
class  mitsuba::KDTreeBase< AABBType >
 Base class of all kd-trees. More...
 
struct  mitsuba::KDTreeBase< AABBType >::KDNode
 KD-tree node in 8 bytes. More...
 
class  mitsuba::GenericKDTree< AABBType, TreeConstructionHeuristic, Derived >
 Optimized KD-tree acceleration data structure for n-dimensional (n<=4) shapes and various queries on them. More...
 
struct  mitsuba::GenericKDTree< AABBType, TreeConstructionHeuristic, Derived >::RewriteItem
 Once the tree has been constructed, it is rewritten into a more convenient binary storage format. More...
 
struct  mitsuba::GenericKDTree< AABBType, TreeConstructionHeuristic, Derived >::EdgeEvent
 Describes the beginning or end of a primitive when projected onto a certain dimension. More...
 
struct  mitsuba::GenericKDTree< AABBType, TreeConstructionHeuristic, Derived >::EdgeEventOrdering
 Edge event comparison functor. More...
 
struct  mitsuba::GenericKDTree< AABBType, TreeConstructionHeuristic, Derived >::SplitCandidate
 Data type for split candidates computed by the O(n log n) greedy optimization method. More...
 
struct  mitsuba::GenericKDTree< AABBType, TreeConstructionHeuristic, Derived >::BuildContext
 Per-thread context used to manage memory allocations, also records some useful statistics. More...
 
struct  mitsuba::GenericKDTree< AABBType, TreeConstructionHeuristic, Derived >::BuildInterface
 Communication data structure used to pass jobs to kd-tree builder threads. More...
 
class  mitsuba::GenericKDTree< AABBType, TreeConstructionHeuristic, Derived >::TreeBuilder
 kd-tree builder thread More...
 
struct  mitsuba::GenericKDTree< AABBType, TreeConstructionHeuristic, Derived >::EventList
 
struct  mitsuba::GenericKDTree< AABBType, 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...
 
struct  mitsuba::GenericKDTree< AABBType, TreeConstructionHeuristic, Derived >::MinMaxBins::Partition
 

Namespaces

 mitsuba
 

Macros

#define __MITSUBA_RENDER_GKDTREE_H_
 
#define MTS_KD_MAXDEPTH   48
 Activate lots of extra checks. More...
 
#define MTS_KD_MIN_ALLOC   512*1024
 OrderedChunkAllocator: don't create chunks smaller than 512 KiB. More...
 
#define MTS_KD_BLOCKSIZE_KD   (512*1024/sizeof(KDNode))
 Allocate nodes & index lists in blocks of 512 KiB. More...
 
#define MTS_KD_BLOCKSIZE_IDX   (512*1024/sizeof(uint32_t))
 
#define MTS_KD_AABB_EPSILON   1e-3f
 To avoid numerical issues, the size of the scene bounding box is increased by this amount. More...
 
#define KDAssert(expr)
 
#define KDAssertEx(expr, text)
 
#define KDLog(level, fmt,...)
 

Macro Definition Documentation

#define __MITSUBA_RENDER_GKDTREE_H_
#define KDAssert (   expr)
#define KDAssertEx (   expr,
  text 
)
#define KDLog (   level,
  fmt,
  ... 
)
Value:
Thread::getThread()->getLogger()->log(\
level, KDTreeBase<AABB>::m_theClass, __FILE__, __LINE__, \
fmt, ## __VA_ARGS__)
Definition: fwd.h:42
#define MTS_KD_AABB_EPSILON   1e-3f

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

#define MTS_KD_BLOCKSIZE_IDX   (512*1024/sizeof(uint32_t))
#define MTS_KD_BLOCKSIZE_KD   (512*1024/sizeof(KDNode))

Allocate nodes & index lists in blocks of 512 KiB.

#define MTS_KD_MAXDEPTH   48

Activate lots of extra checks.

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

#define MTS_KD_MIN_ALLOC   512*1024

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