diff --git a/infinigen/assets/objects/creatures/crustacean.py b/infinigen/assets/objects/creatures/crustacean.py index d400f068..016781bc 100644 --- a/infinigen/assets/objects/creatures/crustacean.py +++ b/infinigen/assets/objects/creatures/crustacean.py @@ -190,7 +190,7 @@ def shader_crustacean(nw: NodeWrangler, params): ) light_color = hsv2rgba(base_hue, uniform(0.0, 0.4), log_uniform(0.2, 1.0)) specular = uniform(0.6, 0.8) - specular_tint = uniform(0, 1) + specular_tint = [uniform(0, 1)] * 3 clearcoat = uniform(0.2, 0.8) roughness = uniform(0.1, 0.3) metallic = uniform(0.6, 0.8) diff --git a/infinigen/assets/objects/creatures/insects/utils/geom_utils.py b/infinigen/assets/objects/creatures/insects/utils/geom_utils.py index d0705619..07371e81 100644 --- a/infinigen/assets/objects/creatures/insects/utils/geom_utils.py +++ b/infinigen/assets/objects/creatures/insects/utils/geom_utils.py @@ -660,7 +660,7 @@ def nodegroup_raycast_rotation(nw: NodeWrangler): ) group_output = nw.new_node( - Nodes.GroupOutput, input_kwargs={"Output": if_tangent_rot.outputs[3]} + Nodes.GroupOutput, input_kwargs={"Output": if_tangent_rot} ) diff --git a/infinigen/core/constraints/example_solver/room/solidifier.py b/infinigen/core/constraints/example_solver/room/solidifier.py index 0077cba3..cf9077c6 100644 --- a/infinigen/core/constraints/example_solver/room/solidifier.py +++ b/infinigen/core/constraints/example_solver/room/solidifier.py @@ -670,7 +670,6 @@ def tag(self, obj, visible=True): obj, f"{PREFIX}{t.Subpart.SupportSurface.value}", floor, "BOOLEAN", "FACE" ) write_attr_data(obj, f"{PREFIX}{t.Subpart.Wall.value}", wall, "BOOLEAN", "FACE") - write_attr_data(obj, "segment_id", np.arange(len(center)), "BOOLEAN", "FACE") full = np.ones_like(ceiling) if visible: write_attr_data( diff --git a/infinigen/core/placement/camera.py b/infinigen/core/placement/camera.py index fe3213c9..62a92f09 100644 --- a/infinigen/core/placement/camera.py +++ b/infinigen/core/placement/camera.py @@ -357,7 +357,11 @@ def keep_cam_pose_proposal( return None coverage = len(dists) / n_pix - if coverage < terrain_coverage_range[0] or coverage > terrain_coverage_range[1]: + if ( + coverage < terrain_coverage_range[0] + or coverage > terrain_coverage_range[1] + or coverage == 0 + ): logger.debug( f"keep_cam_pose_proposal rejects {coverage=} for {terrain_coverage_range=}" ) diff --git a/infinigen/core/placement/particles.py b/infinigen/core/placement/particles.py index 23ce8015..0b6b442c 100644 --- a/infinigen/core/placement/particles.py +++ b/infinigen/core/placement/particles.py @@ -33,7 +33,8 @@ def bake(emitter, system): } with Suppress(): bpy.context.scene.frame_end += 1 - bpy.ops.ptcache.bake(override, bake=True) + with bpy.context.temp_override(override): + bpy.ops.ptcache.bake(bake=True) bpy.context.scene.frame_end -= 1 emitter.hide_viewport = hide_orig diff --git a/infinigen/infinigen_gpl b/infinigen/infinigen_gpl index 10c1d76f..78d34b2d 160000 --- a/infinigen/infinigen_gpl +++ b/infinigen/infinigen_gpl @@ -1 +1 @@ -Subproject commit 10c1d76f5c35003e919be7265185c9c355e3b70c +Subproject commit 78d34b2d4b7bd373d22b455dfc59716a78e3f9dd diff --git a/infinigen/tools/process_static_meshes.py b/infinigen/tools/process_static_meshes.py index f0145b9f..835eac7f 100644 --- a/infinigen/tools/process_static_meshes.py +++ b/infinigen/tools/process_static_meshes.py @@ -40,7 +40,10 @@ ) as f: json.dump(current_json, f) for npz_path in os.listdir(static_mesh_folder): - if npz_path.endswith(".npz"): + if ( + npz_path.endswith(".npz") + and not (static_mesh_folder / npz_path).exists() + ): os.symlink( static_mesh_folder / npz_path, args.target_frames_dir