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:
authorAras Pranckevicius <aras_p>2022-03-20 00:13:21 +0300
committerHoward Trickey <howard.trickey@gmail.com>2022-03-20 00:14:53 +0300
commit5bfdaaa80082be12af9850a2af294823005abb72 (patch)
tree697acfda232c824493370d854b2b8879afc8fb9f /source/blender/io/wavefront_obj
parenteccb0b222e3465baa71430223c5ee2f0206a7b02 (diff)
Fix T96415: new OBJ exporter was applying scaling factor incorrectly
This is patch D14347 from Aras Pranckevicius. Instead of scaling "the scene" (i.e. transform vertices by object matrix, then multiply by scale factor), it was instead first applying the scale factor in local space, and then transforming by the object matrix.
Diffstat (limited to 'source/blender/io/wavefront_obj')
-rw-r--r--source/blender/io/wavefront_obj/exporter/obj_export_mesh.cc2
-rw-r--r--source/blender/io/wavefront_obj/tests/obj_exporter_tests.cc11
2 files changed, 12 insertions, 1 deletions
diff --git a/source/blender/io/wavefront_obj/exporter/obj_export_mesh.cc b/source/blender/io/wavefront_obj/exporter/obj_export_mesh.cc
index bd235ae07ae..5be68565054 100644
--- a/source/blender/io/wavefront_obj/exporter/obj_export_mesh.cc
+++ b/source/blender/io/wavefront_obj/exporter/obj_export_mesh.cc
@@ -246,8 +246,8 @@ float3 OBJMesh::calc_vertex_coords(const int vert_index, const float scaling_fac
{
float3 r_coords;
copy_v3_v3(r_coords, export_mesh_eval_->mvert[vert_index].co);
- mul_v3_fl(r_coords, scaling_factor);
mul_m4_v3(world_and_axes_transform_, r_coords);
+ mul_v3_fl(r_coords, scaling_factor);
return r_coords;
}
diff --git a/source/blender/io/wavefront_obj/tests/obj_exporter_tests.cc b/source/blender/io/wavefront_obj/tests/obj_exporter_tests.cc
index 27f34ca6be9..e96a7d28561 100644
--- a/source/blender/io/wavefront_obj/tests/obj_exporter_tests.cc
+++ b/source/blender/io/wavefront_obj/tests/obj_exporter_tests.cc
@@ -475,6 +475,17 @@ TEST_F(obj_exporter_regression_test, cube_normal_edit)
_export.params);
}
+TEST_F(obj_exporter_regression_test, cubes_positioned)
+{
+ OBJExportParamsDefault _export;
+ _export.params.export_materials = false;
+ _export.params.scaling_factor = 2.0f;
+ compare_obj_export_to_golden("io_tests/blend_geometry/cubes_positioned.blend",
+ "io_tests/obj/cubes_positioned.obj",
+ "",
+ _export.params);
+}
+
TEST_F(obj_exporter_regression_test, suzanne_all_data)
{
OBJExportParamsDefault _export;