diff --git a/sim_scenes/earth/earth_3d.py b/sim_scenes/earth/earth_3d.py index db831fa41563562b5f85a83e9708c4c36b1ae321..7aefcdfa1ff99244479cd35276d5db78d0b92a7b 100644 --- a/sim_scenes/earth/earth_3d.py +++ b/sim_scenes/earth/earth_3d.py @@ -29,9 +29,10 @@ if __name__ == '__main__': bodies = [earth, clouds] - # 3D摄像机初始化 + # TODO: 开启3D摄像机 from simulators.ursina.entities.camera3d import Camera3d - Camera3d.init() + # 3D摄像机初始化(眼睛的距离为1000公里效果) + Camera3d.init(eye_distance=1000) # 使用 ursina 查看的运行效果 # 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹 diff --git a/sim_scenes/fiction/transformed_mars_ani_3d.py b/sim_scenes/fiction/transformed_mars_ani_3d.py index 57cea8499859b152f37a5c1cbe7c16ed40f10c0d..95762e49f722d1c7062d5902b4da47560bf422e5 100644 --- a/sim_scenes/fiction/transformed_mars_ani_3d.py +++ b/sim_scenes/fiction/transformed_mars_ani_3d.py @@ -7,17 +7,14 @@ # python_version :3.8 # ============================================================================== import os - -import numpy as np import sys + from bodies import Earth -from objs import Satellite, Satellite2 from common.consts import SECONDS_PER_HOUR +from objs import Satellite2 from sim_scenes.func import ursina_run from simulators.ursina.entities.body_timer import TimeData -from simulators.ursina.entities.camera3d import Camera3d from simulators.ursina.entities.entity_utils import create_directional_light -from simulators.ursina.ursina_config import UrsinaConfig from simulators.ursina.ursina_event import UrsinaEvent @@ -84,7 +81,10 @@ def transformed_mars_ani(transformed_texture=None, texture=None, camera3d=False) bodies.append(clouds) if camera3d: - Camera3d.init() + # TODO: 开启3D摄像机 + from simulators.ursina.entities.camera3d import Camera3d + # 3D摄像机初始化(眼睛的距离为1000公里效果) + Camera3d.init(eye_distance=1000) def on_ready(): # 为了较好的立体效果,可以增加太阳光线,光线指向火星(target=mars) diff --git a/sim_scenes/fiction/transformed_planet.py b/sim_scenes/fiction/transformed_planet.py index 5925b9146527f5b6a43711680b543dc1a413c605..970c66fb1c7c3b0fbd75ebfe732345a4e9b9bc56 100644 --- a/sim_scenes/fiction/transformed_planet.py +++ b/sim_scenes/fiction/transformed_planet.py @@ -6,18 +6,13 @@ # link :https://gitcode.net/pythoncr/ # python_version :3.8 # ============================================================================== -import numpy as np -from bodies import Earth -from common.consts import SECONDS_PER_HOUR, SECONDS_PER_DAY, AU -from sim_scenes.func import ursina_run, camera_look_at, create_3d_card -from simulators.ursina.entities.body_timer import TimeData -from simulators.ursina.entities.camera3d import Camera3d -from simulators.ursina.ursina_config import UrsinaConfig -from simulators.ursina.ursina_event import UrsinaEvent -from ursina import camera import os +from bodies import Earth +from common.consts import SECONDS_PER_HOUR +from sim_scenes.func import ursina_run + def run_transformed_planet(transformed_texture=None, texture=None, with_clouds=True, camera3d=False, transparent=True): if transformed_texture is not None: @@ -44,7 +39,10 @@ def run_transformed_planet(transformed_texture=None, texture=None, with_clouds=T bodies.append(clouds) if camera3d: - Camera3d.init() + # TODO: 开启3D摄像机 + from simulators.ursina.entities.camera3d import Camera3d + # 3D摄像机初始化(眼睛的距离为1000公里效果) + Camera3d.init(eye_distance=1000) # 使用 ursina 查看的运行效果 # 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹 diff --git a/sim_scenes/solar_system/hd_mercury_3d.py b/sim_scenes/solar_system/hd_mercury_3d.py index 9faccda7d21d83027f12eace8e475bbee92c2328..e030e7ec13305ca83c06c11c5ec742ac8b212fbc 100644 --- a/sim_scenes/solar_system/hd_mercury_3d.py +++ b/sim_scenes/solar_system/hd_mercury_3d.py @@ -21,10 +21,10 @@ if __name__ == '__main__': ] mercury = bodies[0] - # TODO: 3D摄像机 + # TODO: 开启3D摄像机 from simulators.ursina.entities.camera3d import Camera3d - # 3D摄像机初始化 - Camera3d.init() + # 3D摄像机初始化(眼睛的距离为1000公里效果) + Camera3d.init(eye_distance=1000) # 使用 ursina 查看的运行效果 # 常用快捷键: P:运行和暂停 O:重新开始 I:显示天体轨迹 diff --git a/tools/sim_video_3d_cap_ext.py b/tools/sim_video_3d_cap_ext.py index 1f3d7d1698243d319e5cd6eda1c8dacf485e921b..f9161bff46e8f950f197e998a2456f730cc9a8bb 100644 --- a/tools/sim_video_3d_cap_ext.py +++ b/tools/sim_video_3d_cap_ext.py @@ -307,13 +307,13 @@ def make_3d_video(): last_index = index index = index + index_base completed_index = index - # 清除识别块的颜色为黑色 - img[4:21, 3:20, ] = [0, 0, 0] if _3d_card_p[2] < 100: _3d_card_color = "b" _3d_card_direct = "right" if index not in r_frames.keys(): + # 清除识别块的颜色为周边的背景色 + img[4:21, 3:20, ] = img[22:23, 21:22, ][0][0] r_frames[index] = img[:cut_h, :cut_w, ] else: return False @@ -321,6 +321,8 @@ def make_3d_video(): _3d_card_color = "w" _3d_card_direct = "left" if index not in l_frames.keys(): + # 清除识别块的颜色为周边的背景色 + img[4:21, 3:20, ] = img[22:23, 21:22, ][0][0] l_frames[index] = img[:cut_h, :cut_w, ] else: return False diff --git a/tools/video_cap_main.py b/tools/video_cap_main.py index bfd4fdbfaf511a17a11959e7f27cc4c7445207e4..9335882f98eb0720d1f965e000d94438afdfc474 100644 --- a/tools/video_cap_main.py +++ b/tools/video_cap_main.py @@ -18,6 +18,10 @@ def browse_file(): input_entry.insert(0, file_path) output_entry.delete(0, tk.END) output_entry.insert(0, file_path[0:-3] + ".mp4") + + if file_path.endswith("_3d.py") and checkbox3d_var.get() != 1: + checkbox3d.select() + check3d()