[Bf-blender-cvs] [f76203764ce] override-recursive-resync: Fix T88947: invalid normals when converting point cloud to mesh

Jacques Lucke noreply at git.blender.org
Mon Jun 14 16:35:04 CEST 2021


Commit: f76203764ce6afd0af24ed7f8dbd1b8fd3be1835
Author: Jacques Lucke
Date:   Mon Jun 14 11:07:31 2021 +0200
Branches: override-recursive-resync
https://developer.blender.org/rBf76203764ce6afd0af24ed7f8dbd1b8fd3be1835

Fix T88947: invalid normals when converting point cloud to mesh

===================================================================

M	source/blender/blenkernel/intern/geometry_set_instances.cc

===================================================================

diff --git a/source/blender/blenkernel/intern/geometry_set_instances.cc b/source/blender/blenkernel/intern/geometry_set_instances.cc
index 69840ba1612..847df75c8cb 100644
--- a/source/blender/blenkernel/intern/geometry_set_instances.cc
+++ b/source/blender/blenkernel/intern/geometry_set_instances.cc
@@ -472,6 +472,11 @@ static Mesh *join_mesh_topology_and_builtin_attributes(Span<GeometryInstanceGrou
         poly_offset += mesh.totpoly;
       }
     }
+
+    const float3 point_normal{0.0f, 0.0f, 1.0f};
+    short point_normal_short[3];
+    normal_float_to_short_v3(point_normal_short, point_normal);
+
     if (convert_points_to_vertices && set.has_pointcloud()) {
       const PointCloud &pointcloud = *set.get_pointcloud_for_read();
       for (const float4x4 &transform : set_group.transforms) {
@@ -480,6 +485,7 @@ static Mesh *join_mesh_topology_and_builtin_attributes(Span<GeometryInstanceGrou
           const float3 old_position = pointcloud.co[i];
           const float3 new_position = transform * old_position;
           copy_v3_v3(new_vert.co, new_position);
+          memcpy(&new_vert.no, point_normal_short, sizeof(point_normal_short));
         }
         vert_offset += pointcloud.totpoint;
       }



More information about the Bf-blender-cvs mailing list