glTF exporter: fix collection offset when rotated or scaled
This commit is contained in:
parent
2afbdc806e
commit
3e7209f9f2
Notes:
blender-bot
2023-02-14 18:45:38 +01:00
Referenced by issue #83131, gltf exporter exports incorrect transforms when exporting nodes that have a rotation or scale other than the identity
|
@ -15,7 +15,7 @@
|
|||
bl_info = {
|
||||
'name': 'glTF 2.0 format',
|
||||
'author': 'Julien Duroure, Scurest, Norbert Nopper, Urs Hanselmann, Moritz Becher, Benjamin Schmithüsen, Jim Eckerlein, and many external contributors',
|
||||
"version": (1, 5, 15),
|
||||
"version": (1, 5, 16),
|
||||
'blender': (2, 91, 0),
|
||||
'location': 'File > Import-Export',
|
||||
'description': 'Import-Export as glTF 2.0',
|
||||
|
|
|
@ -423,8 +423,17 @@ def __gather_trans_rot_scale(blender_object, export_settings):
|
|||
sca = __convert_swizzle_scale(sca, export_settings)
|
||||
|
||||
if blender_object.instance_type == 'COLLECTION' and blender_object.instance_collection:
|
||||
trans -= __convert_swizzle_location(
|
||||
offset = -__convert_swizzle_location(
|
||||
blender_object.instance_collection.instance_offset, export_settings)
|
||||
|
||||
s = Matrix.Diagonal(sca).to_4x4()
|
||||
r = rot.to_matrix().to_4x4()
|
||||
t = Matrix.Translation(trans).to_4x4()
|
||||
o = Matrix.Translation(offset).to_4x4()
|
||||
m = t @ r @ s @ o
|
||||
|
||||
trans = m.translation
|
||||
|
||||
translation, rotation, scale = (None, None, None)
|
||||
trans[0], trans[1], trans[2] = gltf2_blender_math.round_if_near(trans[0], 0.0), gltf2_blender_math.round_if_near(trans[1], 0.0), \
|
||||
gltf2_blender_math.round_if_near(trans[2], 0.0)
|
||||
|
|
Loading…
Reference in New Issue