|
Open CASCADE Technology
7.0.0
|
Performs construction of BVH tree using binned SAH algorithm. Number of bins controls BVH quality in cost of construction time (greater - better). For optimal results, use 32 - 48 bins. However, reasonable performance is provided even for 4 - 8 bins (it is only 10-20% lower in comparison with optimal settings). Note that multiple threads can be used only with thread safe BVH primitive sets. More...
#include <BVH_BinnedBuilder.hxx>

Data Structures | |
| struct | BVH_SplitPlane |
| Describes split plane candidate. More... | |
Public Types | |
| typedef BVH_Bin< T, N > | BVH_BinVector[Bins] |
| Type of the array of bins of BVH tree node. More... | |
| typedef BVH_SplitPlane | BVH_SplitPlanes[Bins+1] |
| Type of the array of split plane candidates. More... | |
Public Member Functions | |
| BVH_BinnedBuilder (const Standard_Integer theLeafNodeSize=5, const Standard_Integer theMaxTreeDepth=32, const Standard_Boolean theDoMainSplits=0, const Standard_Integer theNumOfThreads=1) | |
| Creates binned SAH BVH builder. More... | |
| virtual | ~BVH_BinnedBuilder () |
| Releases resources of binned SAH BVH builder. More... | |
Public Member Functions inherited from BVH_QueueBuilder< T, N > | |
| BVH_QueueBuilder (const Standard_Integer theLeafNodeSize, const Standard_Integer theMaxTreeDepth, const Standard_Integer theNumOfThreads=1) | |
| Creates new BVH queue based builder. More... | |
| virtual | ~BVH_QueueBuilder ()=0 |
| Releases resources of BVH queue based builder. More... | |
| virtual void | Build (BVH_Set< T, N > *theSet, BVH_Tree< T, N > *theBVH, const BVH_Box< T, N > &theBox) |
| Builds BVH using specific algorithm. More... | |
Public Member Functions inherited from BVH_Builder< T, N > | |
| BVH_Builder (const Standard_Integer theLeafNodeSize, const Standard_Integer theMaxTreeDepth) | |
| Creates new abstract BVH builder. More... | |
| virtual | ~BVH_Builder () |
| Releases resources of BVH builder. More... | |
Protected Member Functions | |
| BVH_QueueBuilder< T, N >::BVH_ChildNodes | BuildNode (BVH_Set< T, N > *theSet, BVH_Tree< T, N > *theBVH, const Standard_Integer theNode) |
| Performs splitting of the given BVH node. More... | |
| virtual void | GetSubVolumes (BVH_Set< T, N > *theSet, BVH_Tree< T, N > *theBVH, const Standard_Integer theNode, BVH_BinVector &theBins, const Standard_Integer theAxis) |
| Arranges node primitives into bins. More... | |
Protected Member Functions inherited from BVH_QueueBuilder< T, N > | |
| virtual void | AddChildren (BVH_Tree< T, N > *theBVH, const Standard_Integer theNode, const BVH_ChildNodes &theSubNodes) |
| Processes child nodes of the splitted BVH node. More... | |
Protected Member Functions inherited from BVH_Builder< T, N > | |
| void | UpdateDepth (BVH_Tree< T, N > *theBVH, const Standard_Integer theLevel) |
| Updates depth of constructed BVH tree. More... | |
Additional Inherited Members | |
Protected Attributes inherited from BVH_QueueBuilder< T, N > | |
| BVH_BuildQueue | myBuildQueue |
| Queue to manage BVH node building tasks. More... | |
| Standard_Integer | myNumOfThreads |
| Number of threads used to build BVH. More... | |
Protected Attributes inherited from BVH_Builder< T, N > | |
| Standard_Integer | myMaxTreeDepth |
| Maximum depth of constructed BVH. More... | |
| Standard_Integer | myLeafNodeSize |
| Maximum number of objects per leaf. More... | |
Performs construction of BVH tree using binned SAH algorithm. Number of bins controls BVH quality in cost of construction time (greater - better). For optimal results, use 32 - 48 bins. However, reasonable performance is provided even for 4 - 8 bins (it is only 10-20% lower in comparison with optimal settings). Note that multiple threads can be used only with thread safe BVH primitive sets.
| typedef BVH_Bin<T, N> BVH_BinnedBuilder< T, N, Bins >::BVH_BinVector[Bins] |
Type of the array of bins of BVH tree node.
| typedef BVH_SplitPlane BVH_BinnedBuilder< T, N, Bins >::BVH_SplitPlanes[Bins+1] |
Type of the array of split plane candidates.
| BVH_BinnedBuilder< T, N, Bins >::BVH_BinnedBuilder | ( | const Standard_Integer | theLeafNodeSize = 5, |
| const Standard_Integer | theMaxTreeDepth = 32, |
||
| const Standard_Boolean | theDoMainSplits = 0, |
||
| const Standard_Integer | theNumOfThreads = 1 |
||
| ) |
Creates binned SAH BVH builder.
|
virtual |
Releases resources of binned SAH BVH builder.
|
protectedvirtual |
Performs splitting of the given BVH node.
Implements BVH_QueueBuilder< T, N >.
|
protectedvirtual |
Arranges node primitives into bins.
1.8.10