Skip to content

pacex/rtxpkd_ldav2020

 
 

Repository files navigation

RTX-PKD - "PKD Trees in Optix/RTX"

This repository shows the experimental code used to obtain the OptiX-related measurements in the paper:
"Spatial Partitioning Strategies for Memory-Efficient Ray Tracing of Particles", LDAV 2020, to appear
This application has been used on Windows 10. It was modified and extended by Pascal Walloner to evaluate probabilistic occlusion culling with P-k-d-based ray tracers as part of the Bachelor's thesis "Acceleration of P-k-d tree traversal using probabilistic occlusion".

Building

This application requires CUDA 10.1+, OptiX 7+, and TBB.
It depends on OWL. Checkout tag ldav_2020_sub from the fork https://github.com/UniStuttgart-VISUS/owl.
Original repo https://github.com/owl-project/owl.
The folder structure has to be:
___ some folder name
        |___ owl
        |___ rtxpkd
for rtxpkd to find OWL and to use it in subsequent build steps.

Running

Run rtxParticleViewer [options] <filename>
The application determines from the file extension which loader to use. Accepted file types are: p4, xyz, random, pkd, and mmpld. For mmpld files, the USE_MMPLD option has to be ON in the CMake configuration. PKD files are dumps of datasets after pkd construction. Random is a type indicating that a random dataset has to be created by the application. The syntax is: <num>_<radius>.random. Num determines the number of particles to generate. The value of radius is currently overriden by the default value of the --radius argument.

Subset of arguments accepted by the application:

Option Description
--allpkd renders scene with a PkD tree (the only supported AS with prob. culling)
--nopkd renders scene with a BVH
--treelets renders scene with the nested hierarchy using PkD treelets (combine this with max-size)
--treelets-brute renders scene with the nested hierarchy using flat lists (combine this with max-size)
--max-size <size> determine the maximal size of treelets in the nested hierarchy
--rec-depth <depth> recursion depth of the ray tracer (only rec-depth 0 supported with prob. culling)
--radius <radius> set radius of the rendered spheres
--c_occ <confidence> set confidence threshold
--voxel-count <n> set density grid resolution
--conv-iter <count> set convergence iteration count
--quant enable depth quantisation
--interp enable density grid interpolation
--kernel-size <n> set neighborhood kernel size (2n+1 x 2n+1)

Releases

No releases published

Packages

No packages published

Languages

  • C 89.0%
  • C++ 7.0%
  • Cuda 2.4%
  • Python 1.2%
  • CMake 0.4%