Skip to content

meistdan/prbvh

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

//---------------------------------------------------------------------------
// ABOUT
//---------------------------------------------------------------------------

This project contains an implementation of the PRBVH BVH builder based 
on Parallel reinsertion for Bounding Volume Hierarchy Optimization [1]. 
The builder is integrated into the ray tracing code of Aila et al. [2] 
and exploits the CUB library for sorting [3]. For more details about PRBVH see [1].

//---------------------------------------------------------------------------
// AUTHORS
//---------------------------------------------------------------------------

Daniel Meister ([email protected]), Jiri Bittner ([email protected])
Czech Technical University in Prague

//---------------------------------------------------------------------------
// REQUIREMENTS
//---------------------------------------------------------------------------

- Microsoft Windows 7+
- CUDA 9.1, compute capability 3.0+
- Windows: Visual Studio C++ 12.0

Notes:
The PRBVH BVH builder and the ray tracing application use the CUDA driver API,
while the CUB library used for sorting has to use the CUDA runtime API. If the
cub project does not load correctly do the following:
- Check 'C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\BuildCustomizations\'
It should contain a props file (e.g. 'CUDA 9.1.props'). If not find it and copy it.
- If you use different version of CUDA then check the project file (cub/cub.vcxproj)
and replace it with the appropriate version (e.g. 'CUDA 9.1' by 'CUDA 8.5').

//---------------------------------------------------------------------------
// CONFIGURATION
//---------------------------------------------------------------------------

The PRBVH method is configurable via 'gpu-ray-traversal/prbvh.cfg' file.
- morton60: 0-1 
- adaptiveLeafSize: 0-1
- maxLeafSize: 1-64
- mod: 1-64
 
//---------------------------------------------------------------------------
// ACKNOWLEDGMENTS
//---------------------------------------------------------------------------

We thank Timo Aila, Samuli Laine, and Tero Karras for making their high performance 
ray tracing framework publicly available. We also thank the developers of CUB library 
which we use for sorting. 

//---------------------------------------------------------------------------
// REFERENCES
//---------------------------------------------------------------------------

[1] Daniel Meister, Jiri Bittner. Parallel reinsertion for Bounding Volume Hierarchy Optimization.
Computer Graphica Forum (Proceedings of Eurographics 2018), 2018
2017.

[2] Timo Aila and Samuli Laine. Understanding the Efficiency of Ray Traversal on GPUs. 
High-Performance Graphics, 2009. 
http://www.tml.tkk.fi/~timo/publications/aila2009hpg_paper.pdf

[3] Duane Merrill and Andrew Grimshaw. High Performance and Scalable Radix Sorting.
Parallel Processing Letters, 2011
https://5d3c0b13-a-62cb3a1a-s-sites.googlegroups.com/site/duanemerrill/PplGpuSortingPreprint.pdf

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published