From 0f82f24126911d024c235e94127812a9c50edad2 Mon Sep 17 00:00:00 2001 From: Mikko Rasa Date: Sat, 15 Jul 2023 22:33:32 +0300 Subject: [PATCH] Correctly export cameras aligned on the Z axis --- blender/io_mspgl/export_camera.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/blender/io_mspgl/export_camera.py b/blender/io_mspgl/export_camera.py index 7108681a..9b814d9e 100644 --- a/blender/io_mspgl/export_camera.py +++ b/blender/io_mspgl/export_camera.py @@ -16,8 +16,13 @@ class CameraExporter: resource.statements.append(Statement("look_direction", look_dir.x, look_dir.y, look_dir.z)) right_dir = obj.matrix_world@mathutils.Vector((1, 0, 0, 0)) - look_xy = mathutils.Vector((look_dir.x, look_dir.y, 0)) - up_dir = right_dir.xyz.cross(look_xy) + if look_dir.x*look_dir.x+look_dir.y*look_dir.y>0.01: + look_flat = mathutils.Vector((look_dir.x, look_dir.y, 0)) + elif abs(look_dir.y)>abs(look_dir.x): + look_flat = mathutils.Vector((look_dir.x, 0, look_dir.z)) + else: + look_flat = mathutils.Vector((0, look_dir.y, look_dir.z)) + up_dir = right_dir.xyz.cross(look_flat) resource.statements.append(Statement("up_direction", up_dir.x, up_dir.y, up_dir.z)) # Auto seems to be the same as horizontal -- 2.45.2