https://projects.blender.org/blender/blender/pulls/131833 From 91412f2a28db69ac2a73c1bc646e350063d8ddd5 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 13 Dec 2024 04:29:29 +0100 Subject: [PATCH] Cycles: Support building with OpenVDB 12 --- intern/cycles/scene/image_vdb.cpp | 20 +++++++++++++++----- intern/cycles/scene/image_vdb.h | 8 +++++++- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/intern/cycles/scene/image_vdb.cpp b/intern/cycles/scene/image_vdb.cpp index d94a7973adc..42964fac81d 100644 --- a/intern/cycles/scene/image_vdb.cpp +++ b/intern/cycles/scene/image_vdb.cpp @@ -55,23 +55,33 @@ struct ToNanoOp { try { # if NANOVDB_MAJOR_VERSION_NUMBER > 32 || \ (NANOVDB_MAJOR_VERSION_NUMBER == 32 && NANOVDB_MINOR_VERSION_NUMBER >= 6) +# if NANOVDB_MAJOR_VERSION_NUMBER > 32 || \ + (NANOVDB_MAJOR_VERSION_NUMBER == 32 && NANOVDB_MINOR_VERSION_NUMBER >= 7) + /* OpenVDB 12. */ + using nanovdb::tools::createNanoGrid; + using nanovdb::tools::StatsMode; +# else /* OpenVDB 11. */ + using nanovdb::createNanoGrid; + using nanovdb::StatsMode; +# endif + if constexpr (std::is_same_v) { openvdb::FloatGrid floatgrid(*openvdb::gridConstPtrCast(grid)); if (precision == 0) { - nanogrid = nanovdb::createNanoGrid(floatgrid); + nanogrid = createNanoGrid(floatgrid); } else if (precision == 16) { - nanogrid = nanovdb::createNanoGrid(floatgrid); + nanogrid = createNanoGrid(floatgrid); } else { - nanogrid = nanovdb::createNanoGrid(floatgrid); + nanogrid = createNanoGrid(floatgrid); } } else if constexpr (std::is_same_v) { openvdb::Vec3fGrid floatgrid(*openvdb::gridConstPtrCast(grid)); - nanogrid = nanovdb::createNanoGrid( - floatgrid, nanovdb::StatsMode::Disable); + nanogrid = createNanoGrid(floatgrid, + StatsMode::Disable); } # else /* OpenVDB 10. */ diff --git a/intern/cycles/scene/image_vdb.h b/intern/cycles/scene/image_vdb.h index 49853cf3753..e0af9b87db1 100644 --- a/intern/cycles/scene/image_vdb.h +++ b/intern/cycles/scene/image_vdb.h @@ -9,7 +9,13 @@ # include #endif #ifdef WITH_NANOVDB -# include +# include +# if NANOVDB_MAJOR_VERSION_NUMBER > 32 || \ + (NANOVDB_MAJOR_VERSION_NUMBER == 32 && NANOVDB_MINOR_VERSION_NUMBER >= 7) +# include +# else +# include +# endif #endif #include "scene/image.h" -- 2.45.2