Fix tray overlap in local renderer
This commit is contained in:
@@ -458,8 +458,8 @@ def render_model(pack_root: Path, model_ref: str, output_path: Path, cache: dict
|
|||||||
shadow = shadow.filter(ImageFilter.GaussianBlur(8))
|
shadow = shadow.filter(ImageFilter.GaussianBlur(8))
|
||||||
canvas.alpha_composite(shadow)
|
canvas.alpha_composite(shadow)
|
||||||
|
|
||||||
faces: list[tuple[float, list[tuple[float, float, float]], Image.Image]] = []
|
|
||||||
for corners, element, model_data in transformed_elements:
|
for corners, element, model_data in transformed_elements:
|
||||||
|
faces: list[tuple[float, list[tuple[float, float, float]], Image.Image]] = []
|
||||||
for face_name, face in element.get("faces", {}).items():
|
for face_name, face in element.get("faces", {}).items():
|
||||||
vertices = face_vertices(corners, face_name)
|
vertices = face_vertices(corners, face_name)
|
||||||
if not vertices:
|
if not vertices:
|
||||||
@@ -468,12 +468,12 @@ def render_model(pack_root: Path, model_ref: str, output_path: Path, cache: dict
|
|||||||
texture = resolve_face_texture(pack_root, model_data, face)
|
texture = resolve_face_texture(pack_root, model_data, face)
|
||||||
faces.append((sort_face_key(projected), projected, texture))
|
faces.append((sort_face_key(projected), projected, texture))
|
||||||
|
|
||||||
faces.sort(key=lambda item: item[0])
|
faces.sort(key=lambda item: item[0])
|
||||||
for _, projected, texture in faces:
|
for _, projected, texture in faces:
|
||||||
warped = transform_face(texture, projected, canvas)
|
warped = transform_face(texture, projected, canvas)
|
||||||
if warped is None:
|
if warped is None:
|
||||||
continue
|
continue
|
||||||
canvas.alpha_composite(warped)
|
canvas.alpha_composite(warped)
|
||||||
|
|
||||||
canvas.save(output_path)
|
canvas.save(output_path)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user