From e053d7c45609ab25e345ac277a89232bfede8e90 Mon Sep 17 00:00:00 2001 From: Luya Gao Date: Tue, 9 Jun 2020 08:31:49 -0700 Subject: [PATCH] Adding join_mesh in pytorch3d.structures.meshes Summary: Adding a function in pytorch3d.structures.meshes to join multiple meshes into a Meshes object representing a single mesh. The function currently ignores all textures. Reviewed By: nikhilaravi Differential Revision: D21876908 fbshipit-source-id: 448602857e9d3d3f774d18bb4e93076f78329823 --- pytorch3d/structures/meshes.py | 27 +++++++- tests/data/test_joined_spheres_flat.png | Bin 0 -> 26495 bytes tests/data/test_joined_spheres_gouraud.png | Bin 0 -> 21809 bytes tests/data/test_joined_spheres_phong.png | Bin 0 -> 21728 bytes tests/test_obj_io.py | 37 +++++++++++ tests/test_render_meshes.py | 71 ++++++++++++++++++++- 6 files changed, 132 insertions(+), 3 deletions(-) create mode 100644 tests/data/test_joined_spheres_flat.png create mode 100644 tests/data/test_joined_spheres_gouraud.png create mode 100644 tests/data/test_joined_spheres_phong.png diff --git a/pytorch3d/structures/meshes.py b/pytorch3d/structures/meshes.py index a72eb5dc..32c2b692 100644 --- a/pytorch3d/structures/meshes.py +++ b/pytorch3d/structures/meshes.py @@ -1,6 +1,6 @@ # Copyright (c) Facebook, Inc. and its affiliates. All rights reserved. -from typing import List +from typing import List, Union import torch @@ -1539,3 +1539,28 @@ def join_meshes_as_batch(meshes: List[Meshes], include_textures: bool = True): tex = Textures(**kwargs) return Meshes(verts=verts, faces=faces, textures=tex) + + +def join_mesh(meshes: Union[Meshes, List[Meshes]]) -> Meshes: + """ + Joins a batch of meshes in the form of a Meshes object or a list of Meshes + objects as a single mesh. If the input is a list, the Meshes objects in the list + must all be on the same device. This version ignores all textures in the input mehses. + + Args: + meshes: Meshes object that contains a batch of meshes or a list of Meshes objects + + Returns: + new Meshes object containing a single mesh + """ + if isinstance(meshes, List): + meshes = join_meshes_as_batch(meshes, include_textures=False) + + if len(meshes) == 1: + return meshes + verts = meshes.verts_packed() # (sum(V_n), 3) + # Offset automatically done by faces_packed + faces = meshes.faces_packed() # (sum(F_n), 3) + + mesh = Meshes(verts=verts.unsqueeze(0), faces=faces.unsqueeze(0)) + return mesh diff --git a/tests/data/test_joined_spheres_flat.png b/tests/data/test_joined_spheres_flat.png new file mode 100644 index 0000000000000000000000000000000000000000..71810990c64a43523e781d0bbe1509d2596c6482 GIT binary patch literal 26495 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 VSkfhb0)=%znreEFt5j?w{|DL!kr)5~ literal 0 HcmV?d00001 diff --git a/tests/data/test_joined_spheres_gouraud.png b/tests/data/test_joined_spheres_gouraud.png new file mode 100644 index 0000000000000000000000000000000000000000..b34052c25f4bf5bfaf15a022fae06066700cb0b4 GIT binary patch literal 21809 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