Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacques Lucke <jacques@blender.org>2020-11-03 15:59:33 +0300
committerJacques Lucke <jacques@blender.org>2020-11-03 16:01:07 +0300
commit3c953a1b09c9025086f38afdb60b02ba1b7d5970 (patch)
tree1356a298745dc3a2f4a391b43e4fd1aa57fb7a6e
parentdf2a0cd6f419c5b359c29d2aa149f864629c304e (diff)
Fix T82074: Volume to Mesh normals are inverted
OpenVDB seems to have a different winding order convention. Reviewers: brecht Differential Revision: https://developer.blender.org/D9434
-rw-r--r--source/blender/modifiers/intern/MOD_volume_to_mesh.cc6
1 files changed, 4 insertions, 2 deletions
diff --git a/source/blender/modifiers/intern/MOD_volume_to_mesh.cc b/source/blender/modifiers/intern/MOD_volume_to_mesh.cc
index ea292155d3c..8146c4ca84a 100644
--- a/source/blender/modifiers/intern/MOD_volume_to_mesh.cc
+++ b/source/blender/modifiers/intern/MOD_volume_to_mesh.cc
@@ -237,7 +237,8 @@ static Mesh *new_mesh_from_openvdb_data(Span<openvdb::Vec3s> verts,
mesh->mpoly[i].loopstart = 3 * i;
mesh->mpoly[i].totloop = 3;
for (int j = 0; j < 3; j++) {
- mesh->mloop[3 * i + j].v = tris[i][j];
+ /* Reverse vertex order to get correct normals. */
+ mesh->mloop[3 * i + j].v = tris[i][2 - j];
}
}
@@ -248,7 +249,8 @@ static Mesh *new_mesh_from_openvdb_data(Span<openvdb::Vec3s> verts,
mesh->mpoly[poly_offset + i].loopstart = loop_offset + 4 * i;
mesh->mpoly[poly_offset + i].totloop = 4;
for (int j = 0; j < 4; j++) {
- mesh->mloop[loop_offset + 4 * i + j].v = quads[i][j];
+ /* Reverse vertex order to get correct normals. */
+ mesh->mloop[loop_offset + 4 * i + j].v = quads[i][3 - j];
}
}