Merge branch 'master' into blender2.8

This commit is contained in:
2018-01-31 14:24:38 +01:00

View File

@@ -253,16 +253,6 @@ static void mesh_calc_normals_poly_prepare_cb(
}
}
static void mesh_calc_normals_poly_accum_cb(
void *__restrict userdata,
const int lidx,
const ParallelRangeTLS *__restrict UNUSED(tls))
{
MeshCalcNormalsData *data = userdata;
add_v3_v3(data->vnors[data->mloop[lidx].v], data->lnors_weighted[lidx]);
}
static void mesh_calc_normals_poly_finalize_cb(
void *__restrict userdata,
const int vidx,
@@ -327,7 +317,11 @@ void BKE_mesh_calc_normals_poly(
BLI_task_parallel_range(0, numPolys, &data, mesh_calc_normals_poly_prepare_cb, &settings);
/* Actually accumulate weighted loop normals into vertex ones. */
BLI_task_parallel_range(0, numLoops, &data, mesh_calc_normals_poly_accum_cb, &settings);
/* Unfortunately, not possible to thread that (not in a reasonable, totally lock- and barrier-free fashion),
* since several loops will point to the same vertex... */
for (int lidx = 0; lidx < numLoops; lidx++) {
add_v3_v3(vnors[mloop[lidx].v], data.lnors_weighted[lidx]);
}
/* Normalize and validate computed vertex normals. */
BLI_task_parallel_range(0, numVerts, &data, mesh_calc_normals_poly_finalize_cb, &settings);