diff options
Diffstat (limited to 'source/blender/nodes/geometry/nodes/node_geo_volume_to_mesh.cc')
-rw-r--r-- | source/blender/nodes/geometry/nodes/node_geo_volume_to_mesh.cc | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/source/blender/nodes/geometry/nodes/node_geo_volume_to_mesh.cc b/source/blender/nodes/geometry/nodes/node_geo_volume_to_mesh.cc index e5827c24320..e1d1c67b8c8 100644 --- a/source/blender/nodes/geometry/nodes/node_geo_volume_to_mesh.cc +++ b/source/blender/nodes/geometry/nodes/node_geo_volume_to_mesh.cc @@ -41,7 +41,9 @@ static void node_declare(NodeDeclarationBuilder &b) .make_available([](bNode &node) { node_storage(node).resolution_mode = VOLUME_TO_MESH_RESOLUTION_MODE_VOXEL_AMOUNT; }); - b.add_input<decl::Float>(N_("Threshold")).default_value(0.1f).min(0.0f); + b.add_input<decl::Float>(N_("Threshold")) + .default_value(0.1f) + .description(N_("Values larger than the threshold are inside the generated mesh")); b.add_input<decl::Float>(N_("Adaptivity")).min(0.0f).max(1.0f).subtype(PROP_FACTOR); b.add_output<decl::Geometry>(N_("Mesh")); } @@ -151,6 +153,16 @@ static Mesh *create_mesh_from_volume(GeometrySet &geometry_set, GeoNodeExecParam } const bke::VolumeToMeshResolution resolution = get_resolution_param(params); + + if (resolution.mode == VOLUME_TO_MESH_RESOLUTION_MODE_VOXEL_SIZE && + resolution.settings.voxel_size <= 0.0f) { + return nullptr; + } + if (resolution.mode == VOLUME_TO_MESH_RESOLUTION_MODE_VOXEL_AMOUNT && + resolution.settings.voxel_amount <= 0) { + return nullptr; + } + const Main *bmain = DEG_get_bmain(params.depsgraph()); BKE_volume_load(volume, bmain); |