Fix T96415: new OBJ exporter was applying scaling factor incorrectly
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.
Cherry picked from 5bfdaaa800
, original differential D14347.
This commit is contained in:
parent
3a1e6bc1d5
commit
9ed566efb6
Notes:
blender-bot
2023-02-14 11:21:40 +01:00
Referenced by issue #96415, New obj exporter: Scale factor is applied incorrectly Referenced by issue #96241, 3.1: Potential candidates for corrective releases
|
@ -248,8 +248,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;
|
||||
}
|
||||
|
||||
|
|
|
@ -443,6 +443,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;
|
||||
|
|
Loading…
Reference in New Issue