debug normal
This commit is contained in:
@@ -195,7 +195,7 @@ class BlenderUtils:
|
||||
return min_z
|
||||
|
||||
@staticmethod
|
||||
def render_normal(
|
||||
def render_normal_and_depth(
|
||||
output_dir, file_name, binocular_vision=False, target_object=None
|
||||
):
|
||||
target_cameras = [BlenderUtils.CAMERA_NAME]
|
||||
@@ -220,37 +220,6 @@ class BlenderUtils:
|
||||
scene.render.use_overwrite = False
|
||||
scene.render.use_file_extension = 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
|
||||
tree = scene.node_tree
|
||||
|
||||
@@ -276,6 +245,41 @@ class BlenderUtils:
|
||||
output_depth.format.file_format = "PNG"
|
||||
output_depth.format.color_mode = "BW"
|
||||
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)
|
||||
|
||||
msg = "success"
|
||||
|
@@ -243,11 +243,22 @@ class DataGenerator:
|
||||
np.savetxt(os.path.join(scene_dir, "points_and_normals.txt"), points_normals)
|
||||
for i, cam_pose in enumerate(view_data["cam_poses"]):
|
||||
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)
|
||||
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"]))
|
||||
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")
|
||||
for depth_file in os.listdir(depth_dir):
|
||||
if not depth_file.endswith(".png"):
|
||||
@@ -256,14 +267,6 @@ class DataGenerator:
|
||||
new_file_path = os.path.join(depth_dir, f"{name}.png")
|
||||
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
|
||||
|
||||
def change_target_obj_material_to_normal(self):
|
||||
|
Reference in New Issue
Block a user