Nori  23
BVHBuildTask Class Reference

Build task for parallel BVH construction. More...

Inheritance diagram for BVHBuildTask:
Collaboration diagram for BVHBuildTask:

Public Types

enum  { SERIAL_THRESHOLD = 32 , GRAIN_SIZE = 1000 , TRAVERSAL_COST = 1 , INTERSECTION_COST = 1 }
 Build-related parameters. More...
 

Public Member Functions

 BVHBuildTask (BVH &bvh, uint32_t node_idx, uint32_t *start, uint32_t *end, uint32_t *temp)
 
task * execute ()
 

Static Public Member Functions

static void execute_serially (BVH &bvh, uint32_t node_idx, uint32_t *start, uint32_t *end, uint32_t *temp)
 Single-threaded build function.
 

Detailed Description

Build task for parallel BVH construction.

This class uses the task scheduling system of Intel' Thread Building Blocks to parallelize the divide and conquer BVH build at all levels.

The used methodology is roughly that described in "Fast and Parallel Construction of SAH-based Bounding Volume Hierarchies" by Ingo Wald (Proc. IEEE/EG Symposium on Interactive Ray Tracing, 2007)

Definition at line 54 of file bvh.cpp.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum

Build-related parameters.

Enumerator
SERIAL_THRESHOLD 

Switch to a serial build when less than 32 triangles are left.

GRAIN_SIZE 

Process triangles in batches of 1K for the purpose of parallelization.

TRAVERSAL_COST 

Heuristic cost value for traversal operations.

INTERSECTION_COST 

Heuristic cost value for intersection operations.

Definition at line 62 of file bvh.cpp.

Constructor & Destructor Documentation

◆ BVHBuildTask()

BVHBuildTask::BVHBuildTask ( BVH bvh,
uint32_t  node_idx,
uint32_t *  start,
uint32_t *  end,
uint32_t *  temp 
)
inline

Create a new build task

Parameters
bvhReference to the underlying BVH
node_idxIndex of the BVH node that should be built
startStart pointer into a list of triangle indices to be processed
endEnd pointer into a list of triangle indices to be processed
tempPointer into a temporary memory region that can be used for construction purposes. The usable length is end-start unsigned integers.

Definition at line 97 of file bvh.cpp.


The documentation for this class was generated from the following file: