Skip to content

Commit aea0f0e

Browse files
authored
Merge pull request #1807 from kmuseth/feature/nanovdb_v32.7
NanoVDB v32.7.0
2 parents ffdc881 + 569eda1 commit aea0f0e

File tree

113 files changed

+22015
-19672
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

113 files changed

+22015
-19672
lines changed

doc/nanovdb/SourceTree.md

Lines changed: 52 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55
* [NanoVDB.h](https://github.com/AcademySoftwareFoundation/openvdb/blob/master/nanovdb/nanovdb/NanoVDB.h) C++11 implementation of the core data structure and its access methods.
66
* [CNanoVDB.h](https://github.com/AcademySoftwareFoundation/openvdb/blob/master/nanovdb/nanovdb/CNanoVDB.h) Incomplete but useable C99 implementation of the core data structure and its access methods. Designed in particular for use in OpenCL kernels. Note that this relies on zero-sized arrays for the _reserved padding, so will not work on all compilers (with MSVC being a particular example)
77
* [PNanoVDB.h](https://github.com/AcademySoftwareFoundation/openvdb/blob/master/nanovdb/nanovdb/PNanoVDB.h) C99 implementation of the core data structure and its access methods. More complete coverage than CNanoVDB. This version is pointer-less and supports virtually all graphics APIs.
8-
* [util/GridHandle.h](https://github.com/AcademySoftwareFoundation/openvdb/blob/master/nanovdb/nanovdb/util/GridHandle.h) defines a handler for the memory allocated to a NanoVDB grid.
9-
* [util/IO.h](https://github.com/AcademySoftwareFoundation/openvdb/blob/master/nanovdb/nanovdb/util/IO.h) implements I/O support.
10-
* [util/OpenToNanoVDB.h](https://github.com/AcademySoftwareFoundation/openvdb/blob/master/nanovdb/nanovdb/util/OpenToNanoVDB.h) defines the converter from OpenVDB to NanoVDB and obviously depends on the OpenVDB library (as the only header file).
11-
* [Ray.h](https://github.com/AcademySoftwareFoundation/openvdb/blob/master/nanovdb/nanovdb/util/Ray.h) Ray class.
12-
* [HDDA.h](https://github.com/AcademySoftwareFoundation/openvdb/blob/master/nanovdb/nanovdb/util/HDDA.h) HDDA related.
13-
* [SampleFromVoxels.h](https://github.com/AcademySoftwareFoundation/openvdb/blob/master/nanovdb/nanovdb/util/SampleFromVoxels.h) interpolation.
8+
* [GridHandle.h](https://github.com/AcademySoftwareFoundation/openvdb/blob/master/nanovdb/nanovdb/GridHandle.h) defines a handler for the memory allocated to a NanoVDB grid.
9+
* [io/IO.h](https://github.com/AcademySoftwareFoundation/openvdb/blob/master/nanovdb/nanovdb/io/IO.h) implements I/O support.
10+
* [tools/CreateNanoGrid.h](https://github.com/AcademySoftwareFoundation/openvdb/blob/master/nanovdb/nanovdb/tools/CreateNanoGrid.h) defines the converter from OpenVDB to NanoVDB and obviously depends on the OpenVDB library (as the only header file).
11+
* [math/Ray.h](https://github.com/AcademySoftwareFoundation/openvdb/blob/master/nanovdb/nanovdb/math/Ray.h) Ray class.
12+
* [math/HDDA.h](https://github.com/AcademySoftwareFoundation/openvdb/blob/master/nanovdb/nanovdb/math/HDDA.h) HDDA related.
13+
* [math/SampleFromVoxels.h](https://github.com/AcademySoftwareFoundation/openvdb/blob/master/nanovdb/nanovdb/math/SampleFromVoxels.h) interpolation.
1414

1515
```bash
1616
foo@bar:~$ tree
@@ -22,25 +22,19 @@ foo@bar:~$ tree
2222
│ │ └── nanovdb_convert.cc
2323
│ ├── print
2424
│ │ └── nanovdb_print.cc
25+
│ ├── updateFiles.sh
2526
│ └── validate
2627
│ └── nanovdb_validate.cc
2728
├── CNanoVDB.h
29+
├── cuda
30+
│ ├── DeviceBuffer.h
31+
│ ├── GridHandle.cuh
32+
│ └── NodeManager.cuh
2833
├── docs
2934
│ ├── CMakeLists.txt
3035
│ ├── codingstyle.txt
3136
│ └── doxygen-config
3237
├── examples
33-
│ ├── benchmark
34-
│ │ ├── BenchKernels_dense.cu
35-
│ │ ├── BenchKernels_nano.cu
36-
│ │ ├── Benchmark_dense.cu
37-
│ │ ├── Benchmark_nano.cu
38-
│ │ ├── Camera.h
39-
│ │ ├── CMakeLists.txt
40-
│ │ ├── DenseGrid.h
41-
│ │ ├── Image.h
42-
│ │ ├── TestBenchmark.cc
43-
│ │ └── TestBenchmark.cu
4438
│ ├── CMakeLists.txt
4539
│ ├── ex_bump_pool_buffer
4640
│ │ └── bump_pool_buffer.cc
@@ -50,7 +44,7 @@ foo@bar:~$ tree
5044
│ │ ├── nanovdb.cu
5145
│ │ └── openvdb.cc
5246
│ ├── ex_index_grid_cuda
53-
│ │ ├── index_grid_cuda.cu
47+
│ │ ├── index_grid_cuda.cc
5448
│ │ └── index_grid_cuda_kernel.cu
5549
│ ├── ex_make_custom_nanovdb
5650
│ │ └── make_custom_nanovdb.cc
@@ -66,6 +60,7 @@ foo@bar:~$ tree
6660
│ ├── ex_map_pool_buffer
6761
│ │ └── map_pool_buffer.cc
6862
│ ├── ex_modify_nanovdb_thrust
63+
│ │ ├── modify_nanovdb_thrust.cc
6964
│ │ └── modify_nanovdb_thrust.cu
7065
│ ├── ex_nodemanager_cuda
7166
│ │ ├── nodemanager_cuda.cc
@@ -103,9 +98,38 @@ foo@bar:~$ tree
10398
│ │ └── VoxToNanoVDB.h
10499
│ └── ex_write_nanovdb_grids
105100
│ └── write_nanovdb_grids.cc
101+
├── GridHandle.h
102+
├── HostBuffer.h
103+
├── io
104+
│ └── IO.h
105+
├── math
106+
│ ├── CSampleFromVoxels.h
107+
│ ├── DitherLUT.h
108+
│ ├── HDDA.h
109+
│ ├── Math.h
110+
│ ├── Ray.h
111+
│ ├── SampleFromVoxels.h
112+
│ └── Stencils.h
106113
├── NanoVDB.h
114+
├── NodeManager.h
107115
├── PNanoVDB.h
108116
├── Readme.md
117+
├── tools
118+
│ ├── CreateNanoGrid.h
119+
│ ├── CreatePrimitives.h
120+
│ ├── cuda
121+
│ │ ├── AddBlindData.cuh
122+
│ │ ├── GridChecksum.cuh
123+
│ │ ├── GridStats.cuh
124+
│ │ ├── GridValidator.cuh
125+
│ │ ├── IndexToGrid.cuh
126+
│ │ ├── PointsToGrid.cuh
127+
│ │ └── SignedFloodFill.cuh
128+
│ ├── GridBuilder.h
129+
│ ├── GridChecksum.h
130+
│ ├── GridStats.h
131+
│ ├── GridValidator.h
132+
│ └── NanoToOpenVDB.h
109133
├── unittest
110134
│ ├── CMakeLists.txt
111135
│ ├── pnanovdb_validate_strides.h
@@ -115,21 +139,25 @@ foo@bar:~$ tree
115139
└── util
116140
├── CpuTimer.h
117141
├── CreateNanoGrid.h
118-
├── CSampleFromVoxels.h
119142
├── cuda
120143
│ ├── CudaAddBlindData.cuh
121144
│ ├── CudaDeviceBuffer.h
145+
│ ├── CudaGridChecksum.cuh
122146
│ ├── CudaGridHandle.cuh
147+
│ ├── CudaGridStats.cuh
148+
│ ├── CudaGridValidator.cuh
123149
│ ├── CudaIndexToGrid.cuh
150+
│ ├── CudaNodeManager.cuh
124151
│ ├── CudaPointsToGrid.cuh
125152
│ ├── CudaSignedFloodFill.cuh
126153
│ ├── CudaUtils.h
127-
│ └── GpuTimer.cuh
154+
│ ├── GpuTimer.h
155+
│ ├── Timer.h
156+
│ └── Util.h
128157
├── DitherLUT.h
129158
├── ForEach.h
130159
├── GridBuilder.h
131160
├── GridChecksum.h
132-
├── GridHandle.h
133161
├── GridStats.h
134162
├── GridValidator.h
135163
├── HDDA.h
@@ -145,5 +173,6 @@ foo@bar:~$ tree
145173
├── Ray.h
146174
├── Reduce.h
147175
├── SampleFromVoxels.h
148-
└── Stencils.h
149-
```
176+
├── Stencils.h
177+
├── Timer.h
178+
└── Util.h

nanovdb/nanovdb/CMakeLists.txt

Lines changed: 86 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -160,31 +160,66 @@ endif()
160160
# NanoVDB header files
161161
set(NANOVDB_INCLUDE_FILES
162162
CNanoVDB.h
163+
GridHandle.h
164+
HostBuffer.h
163165
NanoVDB.h
166+
NodeManager.h
164167
PNanoVDB.h
165168
)
166169

170+
# NanoVDB cuda header files
171+
set(NANOVDB_INCLUDE_CUDA_FILES
172+
cuda/DeviceBuffer.h
173+
cuda/GridHandle.cuh
174+
cuda/NodeManager.cuh
175+
)
176+
177+
# NanoVDB io header files
178+
set(NANOVDB_INCLUDE_IO_FILES
179+
io/IO.h
180+
)
181+
182+
# NanoVDB math header files
183+
set(NANOVDB_INCLUDE_MATH_FILES
184+
math/CSampleFromVoxels.h
185+
math/DitherLUT.h
186+
math/HDDA.h
187+
math/Math.h
188+
math/Ray.h
189+
math/SampleFromVoxels.h
190+
math/Stencils.h
191+
)
192+
193+
# NanoVDB tools header files
194+
set(NANOVDB_INCLUDE_TOOLS_FILES
195+
tools/CreateNanoGrid.h
196+
tools/CreatePrimitives.h
197+
tools/GridBuilder.h
198+
tools/GridChecksum.h
199+
tools/GridStats.h
200+
tools/GridValidator.h
201+
tools/NanoToOpenVDB.h
202+
)
203+
204+
# NanoVDB tools/cuda header files
205+
set(NANOVDB_INCLUDE_TOOLS_CUDA_FILES
206+
tools/cuda/AddBlindData.cuh
207+
tools/cuda/GridChecksum.cuh
208+
tools/cuda/GridStats.cuh
209+
tools/cuda/GridValidator.cuh
210+
tools/cuda/IndexToGrid.cuh
211+
tools/cuda/PointsToGrid.cuh
212+
tools/cuda/SignedFloodFill.cuh
213+
)
214+
167215
# NanoVDB util header files
168-
set(NANOVDB_INCLUDE_UTILFILES
216+
set(NANOVDB_INCLUDE_UTIL_FILES
169217
util/CpuTimer.h
170218
util/CreateNanoGrid.h
171-
util/CSampleFromVoxels.h
172-
util/cuda/CudaAddBlindData.cuh
173-
util/cuda/CudaDeviceBuffer.h
174-
util/cuda/CudaGridChecksum.cuh
175-
util/cuda/CudaGridHandle.cuh
176-
util/cuda/CudaGridStats.cuh
177-
util/cuda/CudaIndexToGrid.cuh
178-
util/cuda/CudaNodeManager.cuh
179-
util/cuda/CudaPointsToGrid.cuh
180-
util/cuda/CudaSignedFloodFill.cuh
181-
util/cuda/CudaUtils.h
182-
util/cuda/GpuTimer.h
183219
util/DitherLUT.h
184220
util/ForEach.h
185221
util/GridBuilder.h
186222
util/GridChecksum.h
187-
util/GridHandle.h
188223
util/GridStats.h
189224
util/GridValidator.h
190225
util/HDDA.h
@@ -201,6 +236,26 @@ set(NANOVDB_INCLUDE_UTILFILES
201236
util/Reduce.h
202237
util/SampleFromVoxels.h
203238
util/Stencils.h
239+
util/Timer.h
240+
util/Util.h
241+
)
242+
243+
# NanoVDB util/cuda header files
244+
set(NANOVDB_INCLUDE_UTIL_CUDA_FILES
245+
util/cuda/CudaAddBlindData.cuh
246+
util/cuda/CudaGridHandle.cuh
247+
util/cuda/CudaIndexToGrid.cuh
248+
util/cuda/CudaSignedFloodFill.cuh
249+
util/cuda/Timer.h
250+
util/cuda/CudaDeviceBuffer.h
251+
util/cuda/CudaGridStats.cuh
252+
util/cuda/CudaNodeManager.cuh
253+
util/cuda/CudaUtils.h
254+
util/cuda/Util.h
255+
util/cuda/CudaGridChecksum.cuh
256+
util/cuda/CudaGridValidator.cuh
257+
util/cuda/CudaPointsToGrid.cuh
258+
util/cuda/GpuTimer.h
204259
)
205260

206261
add_library(nanovdb INTERFACE)
@@ -266,11 +321,23 @@ if(TARGET Threads::Threads)
266321
target_link_libraries(nanovdb INTERFACE Threads::Threads)
267322
endif()
268323

269-
set(NANOVDB_INSTALL_INCLUDEDIR ${CMAKE_INSTALL_INCLUDEDIR}/nanovdb)
270-
set(NANOVDB_INSTALL_UTILDIR ${NANOVDB_INSTALL_INCLUDEDIR}/util)
271-
272-
install(FILES ${NANOVDB_INCLUDE_FILES} DESTINATION ${NANOVDB_INSTALL_INCLUDEDIR})
273-
install(FILES ${NANOVDB_INCLUDE_UTILFILES} DESTINATION ${NANOVDB_INSTALL_UTILDIR})
324+
set(NANOVDB_INSTALL_INCLUDE_DIR ${CMAKE_INSTALL_INCLUDEDIR}/nanovdb)
325+
set(NANOVDB_INSTALL_CUDA_DIR ${NANOVDB_INSTALL_INCLUDE_DIR}/cuda)
326+
set(NANOVDB_INSTALL_IO_DIR ${NANOVDB_INSTALL_INCLUDE_DIR}/io)
327+
set(NANOVDB_INSTALL_MATH_DIR ${NANOVDB_INSTALL_INCLUDE_DIR}/math)
328+
set(NANOVDB_INSTALL_TOOLS_DIR ${NANOVDB_INSTALL_INCLUDE_DIR}/tools)
329+
set(NANOVDB_INSTALL_TOOLS_CUDA_DIR ${NANOVDB_INSTALL_TOOLS_DIR}/cuda)
330+
set(NANOVDB_INSTALL_UTIL_DIR ${NANOVDB_INSTALL_INCLUDE_DIR}/util)
331+
set(NANOVDB_INSTALL_UTIL_CUDA_DIR ${NANOVDB_INSTALL_UTIL_DIR}/cuda)
332+
333+
install(FILES ${NANOVDB_INCLUDE_FILES} DESTINATION ${NANOVDB_INSTALL_INCLUDE_DIR})
334+
install(FILES ${NANOVDB_INCLUDE_CUDA_FILES} DESTINATION ${NANOVDB_INSTALL_CUDA_DIR})
335+
install(FILES ${NANOVDB_INCLUDE_IO_FILES} DESTINATION ${NANOVDB_INSTALL_IO_DIR})
336+
install(FILES ${NANOVDB_INCLUDE_MATH_FILES} DESTINATION ${NANOVDB_INSTALL_MATH_DIR})
337+
install(FILES ${NANOVDB_INCLUDE_TOOLS_FILES} DESTINATION ${NANOVDB_INSTALL_TOOLS_DIR})
338+
install(FILES ${NANOVDB_INCLUDE_TOOLS_CUDA_FILES} DESTINATION ${NANOVDB_INSTALL_TOOLS_CUDA_DIR})
339+
install(FILES ${NANOVDB_INCLUDE_UTIL_FILES} DESTINATION ${NANOVDB_INSTALL_UTIL_DIR})
340+
install(FILES ${NANOVDB_INCLUDE_UTIL_CUDA_FILES} DESTINATION ${NANOVDB_INSTALL_UTIL_CUDA_DIR})
274341

275342
###############################################################################
276343
# Options

0 commit comments

Comments
 (0)