From 2fade47a9de5b64193616b30f498d7f5f87dcbe9 Mon Sep 17 00:00:00 2001 From: Erik Abrahamsson Date: Mon, 17 Apr 2023 03:10:40 +0200 Subject: [PATCH] Fix: Transform geometry node doesn't translate volumes correctly Fixes a bug introduced in b0b9e746fa56bdc25. The volume transformation matrix is multiplied in the wrong order which means the grid scale is applied on the translation. --- .../blender/nodes/geometry/nodes/node_geo_transform_geometry.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/blender/nodes/geometry/nodes/node_geo_transform_geometry.cc b/source/blender/nodes/geometry/nodes/node_geo_transform_geometry.cc index 10e9182c598..4438e4450d3 100644 --- a/source/blender/nodes/geometry/nodes/node_geo_transform_geometry.cc +++ b/source/blender/nodes/geometry/nodes/node_geo_transform_geometry.cc @@ -132,7 +132,7 @@ static void transform_volume(GeoNodeExecParams ¶ms, VolumeGrid *volume_grid = BKE_volume_grid_get_for_write(&volume, i); float4x4 grid_matrix; BKE_volume_grid_transform_matrix(volume_grid, grid_matrix.ptr()); - grid_matrix *= transform; + grid_matrix = transform * grid_matrix; const float determinant = math::determinant(grid_matrix); if (!BKE_volume_grid_determinant_valid(determinant)) { found_too_small_scale = true;