|
Blender V5.0
|
#include <binning.h>
Inherits BVHRange.
Public Member Functions | |
| __forceinline | BVHObjectBinning () |
| BVHObjectBinning (const BVHRange &job, BVHReference *prims, const BVHUnaligned *unaligned_heuristic=nullptr, const Transform *aligned_space=nullptr) | |
| void | split (BVHReference *prims, BVHObjectBinning &left_o, BVHObjectBinning &right_o) const |
| __forceinline const BoundBox & | unaligned_bounds () |
| Public Member Functions inherited from BVHRange | |
| __forceinline | BVHRange () |
| __forceinline | BVHRange (const BoundBox &bounds_, int start_, int size_) |
| __forceinline | BVHRange (const BoundBox &bounds_, const BoundBox &cbounds_, int start_, int size_) |
| __forceinline void | set_start (const int start_) |
| __forceinline const BoundBox & | bounds () const |
| __forceinline const BoundBox & | cent_bounds () const |
| __forceinline int | start () const |
| __forceinline int | size () const |
| __forceinline int | end () const |
Public Attributes | |
| float | splitSAH |
| float | leafSAH |
Protected Types | |
| enum | { MAX_BINS = 32 } |
| enum | { LOG_BLOCK_SIZE = 2 } |
Protected Member Functions | |
| __forceinline int4 | get_bin (const BoundBox &box) const |
| __forceinline int4 | get_bin (const float3 &c) const |
| __forceinline float4 | blocks (const int4 &a) const |
| __forceinline int | blocks (const size_t a) const |
| __forceinline BoundBox | get_prim_bounds (const BVHReference &prim) const |
Protected Attributes | |
| int | dim |
| int | pos |
| size_t | num_bins |
| float3 | scale |
| BoundBox | bounds_ |
| BoundBox | cent_bounds_ |
| const BVHUnaligned * | unaligned_heuristic_ |
| const Transform * | aligned_space_ |
| Protected Attributes inherited from BVHRange | |
| BoundBox | rbounds |
| BoundBox | cbounds |
|
inline |
| BVHObjectBinning::BVHObjectBinning | ( | const BVHRange & | job, |
| BVHReference * | prims, | ||
| const BVHUnaligned * | unaligned_heuristic = nullptr, | ||
| const Transform * | aligned_space = nullptr ) |
Definition at line 55 of file binning.cpp.
References aligned_space_, blocks(), BVHRange::bounds(), bounds_, BVHRange::BVHRange(), BVHRange::cent_bounds(), cent_bounds_, BVHUnaligned::compute_aligned_boundbox(), count, dim, BoundBox::empty, extract(), FLT_MAX, get_best_dimension(), get_bin(), get_prim_bounds(), BoundBox::grow(), BoundBox::half_area(), i, insert(), leafSAH, make_float3(), make_float4, make_int4(), mask(), MAX_BINS, merge(), min, num_bins, pos, prefetch_L2(), safe_divide(), scale, select, BVHRange::size(), splitSAH, BVHRange::start(), unaligned_heuristic_, and zero_float4().
|
inlineprotected |
Definition at line 78 of file binning.h.
References __forceinline, LOG_BLOCK_SIZE, make_float4, and make_int4().
Referenced by BVHObjectBinning().
|
inlineprotected |
Definition at line 84 of file binning.h.
References __forceinline, and LOG_BLOCK_SIZE.
|
inlineprotected |
Definition at line 62 of file binning.h.
References __forceinline, cent_bounds_, BoundBox::center2(), clamp(), make_float3(), make_int4(), num_bins, and scale.
Referenced by BVHObjectBinning(), and split().
|
inlineprotected |
Definition at line 72 of file binning.h.
References __forceinline, cent_bounds_, make_float3(), make_int4(), and scale.
|
inlineprotected |
Definition at line 89 of file binning.h.
References __forceinline, aligned_space_, BVHReference::bounds(), and unaligned_heuristic_.
Referenced by BVHObjectBinning(), and split().
| void BVHObjectBinning::split | ( | BVHReference * | prims, |
| BVHObjectBinning & | left_o, | ||
| BVHObjectBinning & | right_o ) const |
Definition at line 212 of file binning.cpp.
References BVHRange::bounds(), BVHReference::bounds(), BVHObjectBinning(), BVHRange::BVHRange(), BoundBox::center2(), dim, BoundBox::empty, get_bin(), get_prim_bounds(), BoundBox::grow(), i, l, N, pos, prefetch_L2(), BVHRange::size(), BVHRange::start(), swap, and unaligned_bounds().
Referenced by BVHBuild::build_node().
|
inline |
Definition at line 37 of file binning.h.
References __forceinline, and bounds_.
Referenced by BVHBuild::build_node(), and split().
|
protected |
Definition at line 56 of file binning.h.
Referenced by BVHObjectBinning(), and get_prim_bounds().
|
protected |
Definition at line 52 of file binning.h.
Referenced by BVHObjectBinning(), and unaligned_bounds().
|
protected |
Definition at line 53 of file binning.h.
Referenced by BVHObjectBinning(), get_bin(), and get_bin().
|
protected |
Definition at line 46 of file binning.h.
Referenced by BVHObjectBinning(), and split().
| float BVHObjectBinning::leafSAH |
Definition at line 43 of file binning.h.
Referenced by BVHBuild::build_node(), BVHObjectBinning(), and BVHObjectBinning().
|
protected |
Definition at line 48 of file binning.h.
Referenced by BVHObjectBinning(), and get_bin().
|
protected |
Definition at line 47 of file binning.h.
Referenced by BVHObjectBinning(), and split().
|
protected |
Definition at line 49 of file binning.h.
Referenced by BVHObjectBinning(), get_bin(), and get_bin().
| float BVHObjectBinning::splitSAH |
Definition at line 42 of file binning.h.
Referenced by BVHBuild::build_node(), and BVHObjectBinning().
|
protected |
Definition at line 55 of file binning.h.
Referenced by BVHObjectBinning(), and get_prim_bounds().