debug normal
This commit is contained in:
@@ -195,7 +195,7 @@ class BlenderUtils:
|
|||||||
return min_z
|
return min_z
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def render_normal(
|
def render_normal_and_depth(
|
||||||
output_dir, file_name, binocular_vision=False, target_object=None
|
output_dir, file_name, binocular_vision=False, target_object=None
|
||||||
):
|
):
|
||||||
target_cameras = [BlenderUtils.CAMERA_NAME]
|
target_cameras = [BlenderUtils.CAMERA_NAME]
|
||||||
@@ -220,37 +220,6 @@ class BlenderUtils:
|
|||||||
scene.render.use_overwrite = False
|
scene.render.use_overwrite = False
|
||||||
scene.render.use_file_extension = False
|
scene.render.use_file_extension = False
|
||||||
scene.render.use_placeholder = False
|
scene.render.use_placeholder = False
|
||||||
bpy.ops.render.render(write_still=True)
|
|
||||||
|
|
||||||
msg = "success"
|
|
||||||
return msg
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def render_mask_and_depth(
|
|
||||||
output_dir, file_name, binocular_vision=False, target_object=None
|
|
||||||
):
|
|
||||||
target_cameras = [BlenderUtils.CAMERA_NAME]
|
|
||||||
if binocular_vision:
|
|
||||||
target_cameras.append(BlenderUtils.CAMERA_RIGHT_NAME)
|
|
||||||
for cam_name in target_cameras:
|
|
||||||
bpy.context.scene.camera = BlenderUtils.get_obj(cam_name)
|
|
||||||
cam_suffix = "L" if cam_name == BlenderUtils.CAMERA_NAME else "R"
|
|
||||||
scene = bpy.context.scene
|
|
||||||
scene.render.filepath = ""
|
|
||||||
|
|
||||||
mask_dir = os.path.join(output_dir, "mask")
|
|
||||||
if not os.path.exists(mask_dir):
|
|
||||||
os.makedirs(mask_dir)
|
|
||||||
|
|
||||||
scene.render.filepath = os.path.join(
|
|
||||||
output_dir, mask_dir, f"{file_name}_{cam_suffix}.png"
|
|
||||||
)
|
|
||||||
scene.render.image_settings.color_depth = "8"
|
|
||||||
scene.render.resolution_percentage = 100
|
|
||||||
scene.render.use_overwrite = False
|
|
||||||
scene.render.use_file_extension = False
|
|
||||||
scene.render.use_placeholder = False
|
|
||||||
|
|
||||||
scene.use_nodes = True
|
scene.use_nodes = True
|
||||||
tree = scene.node_tree
|
tree = scene.node_tree
|
||||||
|
|
||||||
@@ -276,6 +245,41 @@ class BlenderUtils:
|
|||||||
output_depth.format.file_format = "PNG"
|
output_depth.format.file_format = "PNG"
|
||||||
output_depth.format.color_mode = "BW"
|
output_depth.format.color_mode = "BW"
|
||||||
output_depth.format.color_depth = "16"
|
output_depth.format.color_depth = "16"
|
||||||
|
tree.links.new(map_range.outputs[0], output_depth.inputs[0])
|
||||||
|
bpy.ops.render.render(write_still=True)
|
||||||
|
|
||||||
|
msg = "success"
|
||||||
|
return msg
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def render_mask(
|
||||||
|
output_dir, file_name, binocular_vision=False, target_object=None
|
||||||
|
):
|
||||||
|
target_cameras = [BlenderUtils.CAMERA_NAME]
|
||||||
|
if binocular_vision:
|
||||||
|
target_cameras.append(BlenderUtils.CAMERA_RIGHT_NAME)
|
||||||
|
# use pass z
|
||||||
|
bpy.context.scene.view_layers["ViewLayer"].use_pass_z = True
|
||||||
|
for cam_name in target_cameras:
|
||||||
|
bpy.context.scene.camera = BlenderUtils.get_obj(cam_name)
|
||||||
|
cam_suffix = "L" if cam_name == BlenderUtils.CAMERA_NAME else "R"
|
||||||
|
scene = bpy.context.scene
|
||||||
|
scene.render.filepath = ""
|
||||||
|
|
||||||
|
mask_dir = os.path.join(output_dir, "mask")
|
||||||
|
if not os.path.exists(mask_dir):
|
||||||
|
os.makedirs(mask_dir)
|
||||||
|
|
||||||
|
scene.render.filepath = os.path.join(
|
||||||
|
output_dir, mask_dir, f"{file_name}_{cam_suffix}.png"
|
||||||
|
)
|
||||||
|
scene.render.image_settings.color_depth = "8"
|
||||||
|
scene.render.resolution_percentage = 100
|
||||||
|
scene.render.use_overwrite = False
|
||||||
|
scene.render.use_file_extension = False
|
||||||
|
scene.render.use_placeholder = False
|
||||||
|
|
||||||
|
|
||||||
bpy.ops.render.render(write_still=True)
|
bpy.ops.render.render(write_still=True)
|
||||||
|
|
||||||
msg = "success"
|
msg = "success"
|
||||||
|
@@ -243,11 +243,22 @@ class DataGenerator:
|
|||||||
np.savetxt(os.path.join(scene_dir, "points_and_normals.txt"), points_normals)
|
np.savetxt(os.path.join(scene_dir, "points_and_normals.txt"), points_normals)
|
||||||
for i, cam_pose in enumerate(view_data["cam_poses"]):
|
for i, cam_pose in enumerate(view_data["cam_poses"]):
|
||||||
BlenderUtils.set_camera_at(cam_pose)
|
BlenderUtils.set_camera_at(cam_pose)
|
||||||
BlenderUtils.render_mask_and_depth(scene_dir, f"{i}", binocular_vision=self.binocular_vision, target_object = self.target_obj)
|
BlenderUtils.render_mask(scene_dir, f"{i}", binocular_vision=self.binocular_vision, target_object = self.target_obj)
|
||||||
BlenderUtils.save_cam_params(scene_dir, i, binocular_vision=self.binocular_vision)
|
BlenderUtils.save_cam_params(scene_dir, i, binocular_vision=self.binocular_vision)
|
||||||
self.set_progress("render frame", i, len(view_data["cam_poses"]))
|
self.set_progress("render frame", i, len(view_data["cam_poses"]))
|
||||||
self.set_progress("render frame", len(view_data["cam_poses"]), len(view_data["cam_poses"]))
|
self.set_progress("render frame", len(view_data["cam_poses"]), len(view_data["cam_poses"]))
|
||||||
BlenderUtils.save_scene_info(scene_dir, self.display_table_config, object_name)
|
BlenderUtils.save_scene_info(scene_dir, self.display_table_config, object_name)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
self.change_target_obj_material_to_normal()
|
||||||
|
for i, cam_pose in enumerate(view_data["cam_poses"]):
|
||||||
|
BlenderUtils.set_camera_at(cam_pose)
|
||||||
|
BlenderUtils.render_normal_and_depth(scene_dir, f"{i}", binocular_vision=self.binocular_vision, target_object = self.target_obj)
|
||||||
|
BlenderUtils.save_cam_params(scene_dir, i, binocular_vision=self.binocular_vision)
|
||||||
|
self.set_progress("render normal frame", i, len(view_data["cam_poses"]))
|
||||||
|
self.set_progress("render normal frame", len(view_data["cam_poses"]), len(view_data["cam_poses"]))
|
||||||
|
|
||||||
depth_dir = os.path.join(scene_dir, "depth")
|
depth_dir = os.path.join(scene_dir, "depth")
|
||||||
for depth_file in os.listdir(depth_dir):
|
for depth_file in os.listdir(depth_dir):
|
||||||
if not depth_file.endswith(".png"):
|
if not depth_file.endswith(".png"):
|
||||||
@@ -256,14 +267,6 @@ class DataGenerator:
|
|||||||
new_file_path = os.path.join(depth_dir, f"{name}.png")
|
new_file_path = os.path.join(depth_dir, f"{name}.png")
|
||||||
os.rename(file_path,new_file_path)
|
os.rename(file_path,new_file_path)
|
||||||
|
|
||||||
self.change_target_obj_material_to_normal()
|
|
||||||
for i, cam_pose in enumerate(view_data["cam_poses"]):
|
|
||||||
BlenderUtils.set_camera_at(cam_pose)
|
|
||||||
BlenderUtils.render_normal(scene_dir, f"{i}", binocular_vision=self.binocular_vision, target_object = self.target_obj)
|
|
||||||
BlenderUtils.save_cam_params(scene_dir, i, binocular_vision=self.binocular_vision)
|
|
||||||
self.set_progress("render normal frame", i, len(view_data["cam_poses"]))
|
|
||||||
self.set_progress("render normal frame", len(view_data["cam_poses"]), len(view_data["cam_poses"]))
|
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def change_target_obj_material_to_normal(self):
|
def change_target_obj_material_to_normal(self):
|
||||||
|
Reference in New Issue
Block a user