[Bf-blender-cvs] [0026ca09def] master: Revert "Volumes: make Mesh to Volume modifier independent of object transforms"
Brecht Van Lommel
noreply at git.blender.org
Mon Oct 5 11:41:41 CEST 2020
Commit: 0026ca09defb26b4137ac66a94d1ba757239aa32
Author: Brecht Van Lommel
Date: Mon Oct 5 11:20:59 2020 +0200
Branches: master
https://developer.blender.org/rB0026ca09defb26b4137ac66a94d1ba757239aa32
Revert "Volumes: make Mesh to Volume modifier independent of object transforms"
This reverts commit 66cd82a8d. This was based on a misunderstanding. We do want
to take into account transforms similar to other modifiers like booleans, to
support taking into account animated transforms, combining multiple meshes into
one volume, etc.
===================================================================
M source/blender/modifiers/intern/MOD_mesh_to_volume.cc
===================================================================
diff --git a/source/blender/modifiers/intern/MOD_mesh_to_volume.cc b/source/blender/modifiers/intern/MOD_mesh_to_volume.cc
index 2d6791cbe68..6fdc78c6ce9 100644
--- a/source/blender/modifiers/intern/MOD_mesh_to_volume.cc
+++ b/source/blender/modifiers/intern/MOD_mesh_to_volume.cc
@@ -120,6 +120,7 @@ static void initData(ModifierData *md)
static void updateDepsgraph(ModifierData *md, const ModifierUpdateDepsgraphContext *ctx)
{
MeshToVolumeModifierData *mvmd = reinterpret_cast<MeshToVolumeModifierData *>(md);
+ DEG_add_modifier_to_transform_relation(ctx->node, "Mesh to Volume Modifier");
if (mvmd->object) {
DEG_add_object_relation(
ctx->node, mvmd->object, DEG_OB_COMP_GEOMETRY, "Mesh to Volume Modifier");
@@ -197,9 +198,7 @@ static float compute_voxel_size(const MeshToVolumeModifierData *mvmd,
return voxel_size;
}
-static Volume *modifyVolume(ModifierData *md,
- const ModifierEvalContext *UNUSED(ctx),
- Volume *input_volume)
+static Volume *modifyVolume(ModifierData *md, const ModifierEvalContext *ctx, Volume *input_volume)
{
#ifdef WITH_OPENVDB
using namespace blender;
@@ -216,7 +215,8 @@ static Volume *modifyVolume(ModifierData *md,
}
BKE_mesh_wrapper_ensure_mdata(mesh);
- const float4x4 mesh_to_own_object_space_transform = object_to_convert->obmat;
+ const float4x4 mesh_to_own_object_space_transform = float4x4(ctx->object->imat) *
+ float4x4(object_to_convert->obmat);
const float voxel_size = compute_voxel_size(mvmd, mesh_to_own_object_space_transform);
float4x4 mesh_to_index_space_transform;
@@ -263,7 +263,7 @@ static Volume *modifyVolume(ModifierData *md,
return volume;
#else
- UNUSED_VARS(md);
+ UNUSED_VARS(md, ctx);
UNUSED_VARS(compute_voxel_size);
BKE_modifier_set_error(md, "Compiled without OpenVDB");
return input_volume;
More information about the Bf-blender-cvs
mailing list