瀏覽代碼

push fix shit

Sergiu 8 月之前
父節點
當前提交
9e6301d2bd
共有 2 個文件被更改,包括 80 次插入59 次删除
  1. 80 59
      03_blender/sd_blender/__init__.py
  2. 二進制
      03_blender/sd_blender/__pycache__/__init__.cpython-311.pyc

+ 80 - 59
03_blender/sd_blender/__init__.py

@@ -416,73 +416,94 @@ def set_environment(scene_data):
 
 
 def create_cameras(scene_data):
-    # # Get the 05_Cameras collection, or create it if it doesn't exist
+    # Get the 05_Cameras collection, or create it if it doesn't exist
     collection_name = "05_Cameras"
     if collection_name in bpy.data.collections:
         collection = bpy.data.collections[collection_name]
     else:
         return
 
+    for camera_data in scene_data["scene"]["cameras"]:
+        if camera_data["properties"]["active"]:
+            # Create a new camera object
+            # bpy.ops.object.camera_add()
 
-# Assuming `scene_data` and `collection` are already defined
-for camera_data in scene_data["scene"]["cameras"]:
-    # Create a new camera object
-    bpy.ops.object.camera_add()
-
-    # Get the newly created camera
-    camera = bpy.context.object
-
-    # Set the camera's name
-    camera.name = camera_data["name"]
-
-    # Set the camera's position
-    position = camera_data["properties"]["transform"]["position"]
-    camera.location.x = position[0]
-    camera.location.y = -position[2]
-    camera.location.z = position[1]
-
-    # Set the camera's rotation
-    rotation = camera_data["properties"]["transform"]["rotation"]
-    local_rotation = Euler(
-        (
-            math.radians(rotation[0]),
-            math.radians(rotation[1]),
-            math.radians(rotation[2]),
-        ),
-        "XYZ",
-    )
+            camera = bpy.data.objects["Camera"]
+
+            # Get the newly created camera
+            # camera = bpy.context.object
+            camera_position = bpy.data.objects["Camera_Transform"]
+            camera_rotation = bpy.data.objects["Camera_Rotation"]
+
+            position = camera_data["properties"]["transform"]["position"]
+            camera_position.location.x = position[0]
+            camera_position.location.y = -position[2]
+            camera_position.location.z = position[1]
+
+            rotation = camera_data["properties"]["transform"]["rotation"]
+
+            rotation_euler = Euler(
+                (
+                    math.radians(rotation[0] - 90),
+                    math.radians(rotation[2]),
+                    math.radians(rotation[1]),
+                ),
+                "XYZ",
+            )
 
-    # Apply the local rotation to the camera
-    camera.rotation_euler = local_rotation
-
-    # Update the camera's matrix_world to apply the local transformation
-    camera.matrix_world = camera.matrix_basis
-
-    # Calculate the global rotation
-    global_rotation = camera.matrix_world.to_euler()
-
-    # Set the camera's rotation to the global rotation
-    camera.rotation_euler = global_rotation
-
-    # Set the camera's lens properties
-    lens = camera_data["properties"]["lens"]
-    type_mapping = {
-        "PERSPECTIVE": "PERSP",
-        "ORTHOGRAPHIC": "ORTHO",
-        "PANORAMIC": "PANO",
-    }
-    camera.data.type = type_mapping.get(lens["type"].upper(), "PERSP")
-    camera.data.angle = math.radians(lens["fov"])
-    camera.data.clip_start = lens["near"]
-    camera.data.clip_end = lens["far"]
-
-    # Add the camera to the 05_Cameras collection
-    collection.objects.link(camera)
-    bpy.context.scene.collection.objects.unlink(camera)
-
-    # Set the camera as the active camera if "active" is true
-    if camera_data["properties"]["active"]:
-        bpy.context.scene.camera = camera
+            camera_rotation.rotation_euler = rotation_euler
+
+            # Set the camera's name
+            # camera.name = camera_data["name"]
+
+            # Set the camera's position
+            # position = camera_data["properties"]["transform"]["position"]
+            # camera.location.x = position[0]
+            # camera.location.y = -position[2]
+            # camera.location.z = position[1]
+
+            # Set the camera's rotation
+            # rotation = camera_data["properties"]["transform"]["rotation"]
+            # local_rotation = Euler(
+            #     (
+            #         math.radians(rotation[0]),
+            #         math.radians(rotation[1]),
+            #         math.radians(rotation[2]),
+            #     ),
+            #     "XYZ",
+            # )
+
+            # # Apply the local rotation to the camera
+            # camera.rotation_euler = local_rotation
+
+            # # Update the camera's matrix_world to apply the local transformation
+            # camera.matrix_world = camera.matrix_basis
+
+            # # Calculate the global rotation
+            # global_rotation = camera.matrix_world.to_euler()
+
+            # # Set the camera's rotation to the global rotation
+            # camera.rotation_euler = global_rotation
+
+            # Set the camera's lens properties
+            lens = camera_data["properties"]["lens"]
+            type_mapping = {
+                "PERSPECTIVE": "PERSP",
+                "ORTHOGRAPHIC": "ORTHO",
+                "PANORAMIC": "PANO",
+            }
+            camera.data.type = type_mapping.get(lens["type"].upper(), "PERSP")
+            camera.data.angle = math.radians(lens["fov"])
+            camera.data.clip_start = lens["near"]
+            camera.data.clip_end = lens["far"]
+
+            # Add the camera to the 05_Cameras collection
+            # collection.objects.link(camera)
+            # bpy.context.scene.collection.objects.unlink(camera)
+
+            # Set the camera as the active camera if "active" is true
+            # if camera_data["properties"]["active"]:
+            #     bpy.context.scene.camera = camera
 
 
 def set_output_paths(base_path, project_name):

二進制
03_blender/sd_blender/__pycache__/__init__.cpython-311.pyc