glTF exporter: Fix T99306 : Fix camera & light export when Yup is off

This commit is contained in:
Julien Duroure 2022-07-01 06:30:32 +02:00
parent 6d7056ab6e
commit 849e7196eb
Notes: blender-bot 2023-02-14 18:18:17 +01:00
Referenced by issue #99306,  GLTF Exporter blender 3.2 and above flips the axis of rotation for exported camera transforms matrices
2 changed files with 9 additions and 3 deletions

View File

@ -4,7 +4,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": (3, 3, 10),
"version": (3, 3, 11),
'blender': (3, 3, 0),
'location': 'File > Import-Export',
'description': 'Import-Export as glTF 2.0',

View File

@ -163,10 +163,16 @@ class VExportTree:
# So real world matrix is collection world_matrix @ "world_matrix" of object
node.matrix_world = parent_coll_matrix_world @ blender_object.matrix_world.copy()
if node.blender_type == VExportNode.CAMERA and self.export_settings[gltf2_blender_export_keys.CAMERAS]:
correction = Quaternion((2**0.5/2, -2**0.5/2, 0.0, 0.0))
if self.export_settings[gltf2_blender_export_keys.YUP]:
correction = Quaternion((2**0.5/2, -2**0.5/2, 0.0, 0.0))
else:
correction = Matrix.Identity(4).to_quaternion()
node.matrix_world @= correction.to_matrix().to_4x4()
elif node.blender_type == VExportNode.LIGHT and self.export_settings[gltf2_blender_export_keys.LIGHTS]:
correction = Quaternion((2**0.5/2, -2**0.5/2, 0.0, 0.0))
if self.export_settings[gltf2_blender_export_keys.YUP]:
correction = Quaternion((2**0.5/2, -2**0.5/2, 0.0, 0.0))
else:
correction = Matrix.Identity(4).to_quaternion()
node.matrix_world @= correction.to_matrix().to_4x4()
elif node.blender_type == VExportNode.BONE:
if self.export_settings['gltf_current_frame'] is True: