|
NTrace
GPU ray tracing framework
|
#include <OcclusionBVHBuilder.hpp>
Inherits FW::SplitBVHBuilder.
Classes | |
| struct | NodeSpecOcl |
| struct | ObjectSplitOcl |
| struct | SpatialBinOcl |
| struct | SpatialSplitOcl |
Public Member Functions | |
| OcclusionBVHBuilder (BVH &bvh, const BVH::BuildParams ¶ms, const Vec3f &cameraPosition) | |
| virtual | ~OcclusionBVHBuilder (void) |
| virtual BVHNode * | run (void) |
Public Member Functions inherited from FW::SplitBVHBuilder | |
| SplitBVHBuilder (BVH &bvh, const BVH::BuildParams ¶ms) | |
| Constructor. More... | |
| ~SplitBVHBuilder (void) | |
| Destructor. More... | |
| BVHNode * | run (void) |
| Performs the actual build. More... | |
| void | splitReference (Reference &left, Reference &right, const Reference &ref, int dim, F32 pos) |
| Splits the triangle's bounding box. More... | |
Static Public Member Functions | |
| static bool | sortCompare (void *data, int idxA, int idxB) |
Static Public Member Functions inherited from FW::SplitBVHBuilder | |
| static bool | sortCompare (void *data, int idxA, int idxB) |
| Sort comparator. Sorts references according to their position in descending order. For details see framework/base.Sort.hpp. More... | |
| static void | sortSwap (void *data, int idxA, int idxB) |
| Sort swap function. Swaps two references placed in the reference stack. For details see framework/base.Sort.hpp. More... | |
Protected Types | |
| enum | { MaxVisibleDepth = 48 } |
Protected Types inherited from FW::SplitBVHBuilder | |
| enum | { MaxDepth = 64, MaxSpatialDepth = 48, NumSpatialBins = 128 } |
| Several tree build constrains. More... | |
Protected Member Functions | |
| BVHNode * | buildNode (const NodeSpecOcl &spec, int start, int end, int level, F32 progressStart, F32 progressEnd) |
| ObjectSplitOcl | findObjectSplit (const NodeSpecOcl &spec, int start, int end, F32 nodeSAH) |
| ObjectSplitOcl | findObjectOccludeSplit (const NodeSpecOcl &spec, int start, int end, F32 nodeSAH) |
| void | performObjectSplit (NodeSpecOcl &left, NodeSpecOcl &right, const NodeSpecOcl &spec, int start, int end, const ObjectSplitOcl &split) |
| SpatialSplitOcl | findSpatialSplit (const NodeSpecOcl &spec, int start, int end, F32 nodeSAH) |
| SpatialSplitOcl | findSpatialOccludeSplit (const NodeSpecOcl &spec, int start, int end, F32 nodeSAH) |
| void | performSpatialOccludeSplit (NodeSpecOcl &left, NodeSpecOcl &right, int &start, int &end, const SpatialSplitOcl &split) |
Protected Member Functions inherited from FW::SplitBVHBuilder | |
| BVHNode * | buildNode (NodeSpec spec, int level, F32 progressStart, F32 progressEnd) |
| Builds a BVH node. The built node may be an inner node as well as a leaf node. More... | |
| BVHNode * | createLeaf (const NodeSpec &spec) |
| Builds a leaf node. More... | |
| ObjectSplit | findObjectSplit (const NodeSpec &spec, F32 nodeSAH) |
| Finds best object split of the node. More... | |
| void | performObjectSplit (NodeSpec &left, NodeSpec &right, const NodeSpec &spec, const ObjectSplit &split) |
| Performs the object split operation. More... | |
| SpatialSplit | findSpatialSplit (const NodeSpec &spec, F32 nodeSAH) |
| Finds the best spatial split of the node. More... | |
| void | performSpatialSplit (NodeSpec &left, NodeSpec &right, const NodeSpec &spec, const SpatialSplit &split) |
| Performs the spatial split operation. More... | |
Static Protected Member Functions | |
| static void | sortSwap (void *data, int idxA, int idxB) |
Protected Attributes | |
| SpatialBinOcl | m_bins [3][NumSpatialBins] |
| Vec3f | m_cameraPos |
| Array< S32 > | m_visibility |
| S32 | m_MaxVisibleDepth |
Protected Attributes inherited from FW::SplitBVHBuilder | |
| BVH & | m_bvh |
| BVH being built. More... | |
| const Platform & | m_platform |
| Platform settings. More... | |
| const BVH::BuildParams & | m_params |
| Build parameters. More... | |
| Array< Reference > | m_refStack |
| Reference stack. More... | |
| F32 | m_minOverlap |
| Minimum overlap of the left and right AABB of the object split needed to make spatial split worth finding. More... | |
| Array< AABB > | m_rightBounds |
| Bounding boxes of all the possible right children. More... | |
| S32 | m_sortDim |
| Sort dimension. Used by sort method. More... | |
| SpatialBin | m_bins [3][NumSpatialBins] |
| Spatial bins. More... | |
| Timer | m_progressTimer |
| Progress timer. More... | |
| S32 | m_numDuplicates |
| Number of duplicated references. More... | |
Definition at line 24 of file OcclusionBVHBuilder.hpp.
|
protected |
| Enumerator | |
|---|---|
| MaxVisibleDepth | |
Definition at line 27 of file OcclusionBVHBuilder.hpp.
| OcclusionBVHBuilder::OcclusionBVHBuilder | ( | BVH & | bvh, |
| const BVH::BuildParams & | params, | ||
| const Vec3f & | cameraPosition | ||
| ) |
Definition at line 37 of file OcclusionBVHBuilder.cpp.
|
virtual |
Definition at line 77 of file OcclusionBVHBuilder.cpp.
|
protected |
Definition at line 271 of file OcclusionBVHBuilder.cpp.
|
protected |
Definition at line 491 of file OcclusionBVHBuilder.cpp.
|
protected |
Definition at line 386 of file OcclusionBVHBuilder.cpp.
|
protected |
Definition at line 765 of file OcclusionBVHBuilder.cpp.
|
protected |
Definition at line 656 of file OcclusionBVHBuilder.cpp.
|
protected |
Definition at line 639 of file OcclusionBVHBuilder.cpp.
|
protected |
Definition at line 1136 of file OcclusionBVHBuilder.cpp.
Definition at line 83 of file OcclusionBVHBuilder.cpp.
|
static |
Definition at line 1289 of file OcclusionBVHBuilder.cpp.
Definition at line 262 of file OcclusionBVHBuilder.cpp.
|
protected |
Definition at line 99 of file OcclusionBVHBuilder.hpp.
|
protected |
Definition at line 100 of file OcclusionBVHBuilder.hpp.
|
protected |
Definition at line 102 of file OcclusionBVHBuilder.hpp.
Definition at line 101 of file OcclusionBVHBuilder.hpp.