diff options
author | Jacques Lucke <jacques@blender.org> | 2021-02-18 12:13:56 +0300 |
---|---|---|
committer | Jacques Lucke <jacques@blender.org> | 2021-02-18 12:13:56 +0300 |
commit | 999abee874bd7d69f6a40c27969598869799e8dc (patch) | |
tree | 96c8abe083aad1b289406e9178e43e83fbea9a02 /source/blender/blenkernel/intern/DerivedMesh.cc | |
parent | 1bcc8f84105a7715655bc42ec12eca41d06c38cf (diff) |
Geometry Nodes: convert point cloud to mesh vertices for modifiers
Previously, when a Geometry Nodes modifier outputs a point cloud
(e.g. generated using the Point Distribute node), other modifiers
could not use that data. Now, the point cloud data is converted to
mesh vertices for such modifiers.
Ref T85281.
Differential Revision: https://developer.blender.org/D10451
Diffstat (limited to 'source/blender/blenkernel/intern/DerivedMesh.cc')
-rw-r--r-- | source/blender/blenkernel/intern/DerivedMesh.cc | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/source/blender/blenkernel/intern/DerivedMesh.cc b/source/blender/blenkernel/intern/DerivedMesh.cc index 213e72d496b..4aa7cfae009 100644 --- a/source/blender/blenkernel/intern/DerivedMesh.cc +++ b/source/blender/blenkernel/intern/DerivedMesh.cc @@ -890,7 +890,7 @@ void BKE_mesh_wrapper_deferred_finalize(Mesh *me_eval, */ static Mesh *prepare_geometry_set_for_mesh_modifier(Mesh *mesh, GeometrySet &r_geometry_set) { - if (!r_geometry_set.has_instances()) { + if (!r_geometry_set.has_instances() && !r_geometry_set.has_pointcloud()) { return mesh; } @@ -901,7 +901,8 @@ static Mesh *prepare_geometry_set_for_mesh_modifier(Mesh *mesh, GeometrySet &r_g } { /* Combine mesh and all instances into a single mesh that can be passed to the modifier. */ - GeometrySet new_geometry_set = blender::bke::geometry_set_realize_instances(r_geometry_set); + GeometrySet new_geometry_set = blender::bke::geometry_set_realize_mesh_for_modifier( + r_geometry_set); MeshComponent &mesh_component = new_geometry_set.get_component_for_write<MeshComponent>(); Mesh *new_mesh = mesh_component.release(); r_geometry_set = new_geometry_set; |