diff --git a/include/neural-graphics-primitives/testbed.h b/include/neural-graphics-primitives/testbed.h index 6bac7082d387331723874589b070c675ef4f5434..704903ac5e2afdf3b3e69fa8b98fcb84c23e21f4 100644 --- a/include/neural-graphics-primitives/testbed.h +++ b/include/neural-graphics-primitives/testbed.h @@ -154,7 +154,7 @@ public: const Eigen::Vector2i& distortion_resolution, Eigen::Array4f* frame_buffer, float* depth_buffer, - uint8_t *grid, + uint8_t* grid, int show_accel, float cone_angle_constant, ERenderMode render_mode, diff --git a/src/testbed.cu b/src/testbed.cu index 78db133b36655a23263ed039a20a247d73cd6237..4553c54d827a6a19960cac446df5200a202b09cb 100644 --- a/src/testbed.cu +++ b/src/testbed.cu @@ -3057,11 +3057,12 @@ void Testbed::load_snapshot(const std::string& filepath_string) { density_grid[i] = (float)density_grid_fp16[i]; }); - if (m_nerf.density_grid.size() != NERF_GRIDSIZE() * NERF_GRIDSIZE() * NERF_GRIDSIZE() * (m_nerf.max_cascade + 1)) { + if (m_nerf.density_grid.size() == NERF_GRIDSIZE() * NERF_GRIDSIZE() * NERF_GRIDSIZE() * (m_nerf.max_cascade + 1)) { + update_density_grid_mean_and_bitfield(nullptr); + } else if (m_nerf.density_grid.size() != 0) { + // A size of 0 indicates that the density grid was never populated, which is a valid state of a (yet) untrained model. throw std::runtime_error{"Incompatible number of grid cascades."}; } - - update_density_grid_mean_and_bitfield(nullptr); } m_network_config_path = filepath_string; diff --git a/src/testbed_nerf.cu b/src/testbed_nerf.cu index e717ea4bb1d2a4d318feede9c964dfdf4c7ebf91..479e1f6da9f38f8522a4b10655b51c8d42b73a19 100644 --- a/src/testbed_nerf.cu +++ b/src/testbed_nerf.cu @@ -1984,7 +1984,7 @@ void Testbed::NerfTracer::init_rays_from_camera( const Vector2i& distortion_resolution, Eigen::Array4f* frame_buffer, float* depth_buffer, - uint8_t *grid, + uint8_t* grid, int show_accel, float cone_angle_constant, ERenderMode render_mode,