From ed6983ea843590c05593fcd4c8de40f5c7bb0970 Mon Sep 17 00:00:00 2001 From: Jeremy Reizenstein Date: Wed, 26 May 2021 04:52:46 -0700 Subject: [PATCH] Experimental glTF reading Summary: Experimental data loader for taking the default scene from a GLB file and converting it to a single mesh in PyTorch3D. Reviewed By: nikhilaravi Differential Revision: D25900167 fbshipit-source-id: bff22ac00298b83a0bd071ae5c8923561e1d81d7 --- docs/notes/io.md | 10 + pytorch3d/io/experimental_gltf_io.py | 572 +++++++++++++++++++++++++++ pytorch3d/io/pluggable.py | 4 + pytorch3d/renderer/mesh/__init__.py | 2 +- tests/common_testing.py | 6 +- tests/data/cow.glb | Bin 0 -> 180048 bytes tests/data/glb_cow.png | Bin 0 -> 10784 bytes tests/data/glb_cow_gray.png | Bin 0 -> 5431 bytes tests/test_io_gltf.py | 180 +++++++++ 9 files changed, 771 insertions(+), 3 deletions(-) create mode 100644 pytorch3d/io/experimental_gltf_io.py create mode 100644 tests/data/cow.glb create mode 100644 tests/data/glb_cow.png create mode 100644 tests/data/glb_cow_gray.png create mode 100644 tests/test_io_gltf.py diff --git a/docs/notes/io.md b/docs/notes/io.md index 201e8178..75238417 100644 --- a/docs/notes/io.md +++ b/docs/notes/io.md @@ -22,3 +22,13 @@ and to save a pointcloud you might do pcl = Pointclouds(...) IO().save_point_cloud(pcl, "output_pointcloud.obj") ``` + +For meshes, this supports OBJ, PLY and OFF files. + +For pointclouds, this supports PLY files. + +In addition, there is experimental support for loading meshes from +[glTF 2 assets](https://github.com/KhronosGroup/glTF/tree/master/specification/2.0) +stored either in a GLB container file or a glTF JSON file with embedded binary data. +This must be enabled explicitly, as described in +`pytorch3d/io/experimental_gltf_io.ply`. diff --git a/pytorch3d/io/experimental_gltf_io.py b/pytorch3d/io/experimental_gltf_io.py new file mode 100644 index 00000000..05cb1f8c --- /dev/null +++ b/pytorch3d/io/experimental_gltf_io.py @@ -0,0 +1,572 @@ +# Copyright (c) Facebook, Inc. and its affiliates. All rights reserved. +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + + +""" +This module implements loading meshes from glTF 2 assets stored in a +GLB container file or a glTF JSON file with embedded binary data. +It is experimental. + +The module provides a MeshFormatInterpreter called +MeshGlbFormat which must be used explicitly. +e.g. + +.. code-block:: python + + from pytorch3d.io import IO + from pytorch3d.io.experimental_gltf_io import MeshGlbFormat + + io = IO() + io.register_meshes_format(MeshGlbFormat()) + io.load_mesh(...) + +This implementation is quite restricted in what it supports. + + - It does not try to validate the input against the standard. + - It loads the default scene only. + - Only triangulated geometry is supported. + - The geometry of all meshes of the entire scene is aggregated into a single mesh. + Use `load_meshes()` instead to get un-aggregated (but transformed) ones. + - All material properties are ignored except for either vertex color, baseColorTexture + or baseColorFactor. If available, one of these (in this order) is exclusively + used which does not match the semantics of the standard. +""" + +import json +import struct +import warnings +from base64 import b64decode +from collections import deque +from enum import IntEnum +from io import BytesIO +from pathlib import Path +from typing import Any, BinaryIO, Dict, List, Optional, Tuple, Union, cast + +import numpy as np +import torch +from iopath.common.file_io import PathManager +from PIL import Image +from pytorch3d.io.utils import _open_file +from pytorch3d.renderer.mesh import TexturesBase, TexturesUV, TexturesVertex +from pytorch3d.structures import Meshes, join_meshes_as_scene +from pytorch3d.transforms import Transform3d, quaternion_to_matrix + +from .pluggable_formats import MeshFormatInterpreter, endswith + + +_GLTF_MAGIC = 0x46546C67 +_JSON_CHUNK_TYPE = 0x4E4F534A +_BINARY_CHUNK_TYPE = 0x004E4942 +_DATA_URI_PREFIX = "data:application/octet-stream;base64," + + +class _PrimitiveMode(IntEnum): + POINTS = 0 + LINES = 1 + LINE_LOOP = 2 + LINE_STRIP = 3 + TRIANGLES = 4 + TRIANGLE_STRIP = 5 + TRIANGLE_FAN = 6 + + +class _ComponentType(IntEnum): + BYTE = 5120 + UNSIGNED_BYTE = 5121 + SHORT = 5122 + UNSIGNED_SHORT = 5123 + UNSIGNED_INT = 5125 + FLOAT = 5126 + + +_ITEM_TYPES: Dict[int, Any] = { + 5120: np.int8, + 5121: np.uint8, + 5122: np.int16, + 5123: np.uint16, + 5125: np.uint32, + 5126: np.float32, +} + + +_ElementShape = Union[Tuple[int], Tuple[int, int]] +_ELEMENT_SHAPES: Dict[str, _ElementShape] = { + "SCALAR": (1,), + "VEC2": (2,), + "VEC3": (3,), + "VEC4": (4,), + "MAT2": (2, 2), + "MAT3": (3, 3), + "MAT4": (4, 4), +} + + +def _read_header(stream: BinaryIO) -> Optional[Tuple[int, int]]: + header = stream.read(12) + magic, version, length = struct.unpack(" Optional[Tuple[Dict[str, Any], np.ndarray]]: + """ + Get the json header and the binary data from a + GLB file. + """ + json_data = None + binary_data = None + + while stream.tell() < length: + chunk_header = stream.read(8) + chunk_length, chunk_type = struct.unpack(" Transform3d: + """ + Convert a transform from the json data in to a PyTorch3D + Transform3d format. + """ + array = node.get("matrix") + if array is not None: # Stored in column-major order + M = np.array(array, dtype=np.float32).reshape(4, 4, order="F") + return Transform3d(matrix=torch.from_numpy(M)) + + out = Transform3d() + + # Given some of (scale/rotation/translation), we do them in that order to + # get points in to the world space. + # See https://github.com/KhronosGroup/glTF/issues/743 . + + array = node.get("scale", None) + if array is not None: + scale_vector = torch.FloatTensor(array) + out = out.scale(scale_vector[None]) + + # Rotation quaternion (x, y, z, w) where w is the scalar + array = node.get("rotation", None) + if array is not None: + x, y, z, w = array + # We negate w. This is equivalent to inverting the rotation. + # This is needed as quaternion_to_matrix makes a matrix which + # operates on column vectors, whereas Transform3d wants a + # matrix which operates on row vectors. + rotation_quaternion = torch.FloatTensor([-w, x, y, z]) + rotation_matrix = quaternion_to_matrix(rotation_quaternion) + out = out.rotate(R=rotation_matrix) + + array = node.get("translation", None) + if array is not None: + translation_vector = torch.FloatTensor(array) + out = out.translate(x=translation_vector[None]) + + return out + + +class _GLTFLoader: + def __init__(self, stream: BinaryIO): + self._json_data = None + # Map from buffer index to (decoded) binary data + self._binary_data = {} + + version_and_length = _read_header(stream) + if version_and_length is None: # GLTF + stream.seek(0) + json_data = json.load(stream) + else: # GLB + version, length = version_and_length + if version != 2: + warnings.warn("Unsupported version") + return + json_and_binary_data = _read_chunks(stream, length) + if json_and_binary_data is None: + raise ValueError("Data not found") + json_data, binary_data = json_and_binary_data + self._binary_data[0] = binary_data + + self._json_data = json_data + self._accessors = json_data.get("accessors", []) + self._buffer_views = json_data.get("bufferViews", []) + self._buffers = json_data.get("buffers", []) + self._texture_map_images = {} + + def _access_image(self, image_index: int) -> np.ndarray: + """ + Get the data for an image from the file. This is only called + by _get_texture_map_image which caches it. + """ + + image_json = self._json_data["images"][image_index] + buffer_view = self._buffer_views[image_json["bufferView"]] + if "byteStride" in buffer_view: + raise NotImplementedError("strided buffer views") + + length = buffer_view["byteLength"] + offset = buffer_view.get("byteOffset", 0) + + binary_data = self.get_binary_data(buffer_view["buffer"]) + + bytesio = BytesIO(binary_data[offset : offset + length].tobytes()) + # pyre-fixme[16]: `Image.Image` has no attribute `__enter__`. + with Image.open(bytesio) as f: + array = np.array(f) + if array.dtype == np.uint8: + return array.astype(np.float32) / 255.0 + else: + return array + + def _get_texture_map_image(self, image_index: int) -> torch.Tensor: + """ + Return a texture map image as a torch tensor. + Calling this function repeatedly with the same arguments returns + the very same tensor, this allows a memory optimization to happen + later in TexturesUV.join_scene. + Any alpha channel is ignored. + """ + im = self._texture_map_images.get(image_index) + if im is not None: + return im + + im = torch.from_numpy(self._access_image(image_index))[:, :, :3] + self._texture_map_images[image_index] = im + return im + + def _access_data(self, accessor_index: int) -> np.ndarray: + """ + Get the raw data from an accessor as a numpy array. + """ + accessor = self._accessors[accessor_index] + + buffer_view_index = accessor.get("bufferView") + # Undefined buffer view (all zeros) are not (yet) supported + if buffer_view_index is None: + raise NotImplementedError("Undefined buffer view") + + accessor_byte_offset = accessor.get("byteOffset", 0) + component_type = accessor["componentType"] + element_count = accessor["count"] + element_type = accessor["type"] + + # Sparse accessors are not (yet) supported + if accessor.get("sparse") is not None: + raise NotImplementedError("Sparse Accessors") + + buffer_view = self._buffer_views[buffer_view_index] + buffer_index = buffer_view["buffer"] + buffer_byte_length = buffer_view["byteLength"] + element_byte_offset = buffer_view.get("byteOffset", 0) + element_byte_stride = buffer_view.get("byteStride", 0) + if element_byte_stride != 0 and element_byte_stride < 4: + raise ValueError("Stride is too small.") + if element_byte_stride > 252: + raise ValueError("Stride is too big.") + + element_shape = _ELEMENT_SHAPES[element_type] + item_type = _ITEM_TYPES[component_type] + item_dtype = np.dtype(item_type) + item_count = np.prod(element_shape) + item_size = item_dtype.itemsize + size = element_count * item_count * item_size + if size > buffer_byte_length: + raise ValueError("Buffer did not have enough data for the accessor") + + buffer_ = self._buffers[buffer_index] + binary_data = self.get_binary_data(buffer_index) + if len(binary_data) < buffer_["byteLength"]: + raise ValueError("Not enough binary data for the buffer") + + if element_byte_stride == 0: + element_byte_stride = item_size * item_count + # The same buffer can store interleaved elements + if element_byte_stride < item_size * item_count: + raise ValueError("Items should not overlap") + + dtype = np.dtype( + { + "names": ["element"], + "formats": [str(element_shape) + item_dtype.str], + "offsets": [0], + "itemsize": element_byte_stride, + } + ) + + byte_offset = accessor_byte_offset + element_byte_offset + if byte_offset % item_size != 0: + raise ValueError("Misaligned data") + byte_length = element_count * element_byte_stride + buffer_view = binary_data[byte_offset : byte_offset + byte_length].view(dtype)[ + "element" + ] + + # Convert matrix data from column-major (OpenGL) to row-major order + if element_type in ("MAT2", "MAT3", "MAT4"): + buffer_view = np.transpose(buffer_view, (0, 2, 1)) + + return buffer_view + + def _get_primitive_attribute( + self, primitive_attributes: Dict[str, Any], key: str, dtype + ) -> Optional[np.ndarray]: + accessor_index = primitive_attributes.get(key) + if accessor_index is None: + return None + primitive_attribute = self._access_data(accessor_index) + if key == "JOINTS_0": + pass + elif dtype == np.uint8: + primitive_attribute /= 255.0 + elif dtype == np.uint16: + primitive_attribute /= 65535.0 + else: + if dtype != np.float32: + raise ValueError("Unexpected data type") + primitive_attribute = primitive_attribute.astype(dtype) + return primitive_attribute + + def get_binary_data(self, buffer_index: int): + """ + Get the binary data from a buffer as a 1D numpy array of bytes. + This is implemented for explicit uri data buffers or the main GLB data + segment. + """ + buffer_ = self._buffers[buffer_index] + binary_data = self._binary_data.get(buffer_index) + if binary_data is None: # Lazily decode binary data + uri = buffer_.get("uri") + if not uri.startswith(_DATA_URI_PREFIX): + raise NotImplementedError("Unexpected URI type") + binary_data = b64decode(uri[len(_DATA_URI_PREFIX) :]) + binary_data = np.frombuffer(binary_data, dtype=np.uint8) + self._binary_data[buffer_index] = binary_data + return binary_data + + def get_texture_for_mesh( + self, primitive: Dict[str, Any], indices: torch.Tensor + ) -> Optional[TexturesBase]: + """ + Get the texture object representing the given mesh primitive. + + Args: + primitive: the mesh primitive being loaded. + indices: the face indices of the mesh + """ + attributes = primitive["attributes"] + vertex_colors = self._get_primitive_attribute(attributes, "COLOR_0", np.float32) + if vertex_colors is not None: + return TexturesVertex(torch.from_numpy(vertex_colors)) + + vertex_texcoords_0 = self._get_primitive_attribute( + attributes, "TEXCOORD_0", np.float32 + ) + if vertex_texcoords_0 is not None: + verts_uvs = torch.from_numpy(vertex_texcoords_0) + verts_uvs[:, 1] = 1 - verts_uvs[:, -1] + faces_uvs = indices + material_index = primitive.get("material", 0) + material = self._json_data["materials"][material_index] + material_roughness = material["pbrMetallicRoughness"] + if "baseColorTexture" in material_roughness: + texture_index = material_roughness["baseColorTexture"]["index"] + texture_json = self._json_data["textures"][texture_index] + # Todo - include baseColorFactor when also given + # Todo - look at the sampler + image_index = texture_json["source"] + map = self._get_texture_map_image(image_index) + elif "baseColorFactor" in material_roughness: + # Constant color? + map = torch.FloatTensor(material_roughness["baseColorFactor"])[ + None, None, :3 + ] + texture = TexturesUV( + maps=[map], # alpha channel ignored + faces_uvs=[faces_uvs], + verts_uvs=[verts_uvs], + ) + return texture + + return None + + def load(self, include_textures: bool) -> List[Tuple[Optional[str], Meshes]]: + """ + Attempt to load all the meshes making up the default scene from + the file as a list of possibly-named Meshes objects. + + Args: + include_textures: Whether to try loading textures. + + Returns: + Meshes object containing one mesh. + """ + if self._json_data is None: + raise ValueError("Initialization problem") + + # This loads the default scene from the file. + # This is usually the only one. + # It is possible to have multiple scenes, in which case + # you could choose another here instead of taking the default. + scene_index = self._json_data.get("scene") + + if scene_index is None: + raise ValueError("Default scene is not specified.") + + scene = self._json_data["scenes"][scene_index] + nodes = self._json_data.get("nodes", []) + meshes = self._json_data.get("meshes", []) + root_node_indices = scene["nodes"] + + mesh_transform = Transform3d() + names_meshes_list: List[Tuple[Optional[str], Meshes]] = [] + + # Keep track and apply the transform of the scene node to mesh vertices + Q = deque([(Transform3d(), node_index) for node_index in root_node_indices]) + + while Q: + parent_transform, current_node_index = Q.popleft() + + current_node = nodes[current_node_index] + + transform = _make_node_transform(current_node) + current_transform = transform.compose(parent_transform) + + if "mesh" in current_node: + mesh_index = current_node["mesh"] + mesh = meshes[mesh_index] + mesh_name = mesh.get("name", None) + mesh_transform = current_transform + + for primitive in mesh["primitives"]: + attributes = primitive["attributes"] + accessor_index = attributes["POSITION"] + positions = torch.from_numpy( + self._access_data(accessor_index).copy() + ) + positions = mesh_transform.transform_points(positions) + + mode = primitive.get("mode", _PrimitiveMode.TRIANGLES) + if mode != _PrimitiveMode.TRIANGLES: + raise NotImplementedError("Non triangular meshes") + + if "indices" in primitive: + accessor_index = primitive["indices"] + indices = self._access_data(accessor_index).astype(np.int64) + else: + indices = np.arange(0, len(positions), dtype=np.int64) + indices = torch.from_numpy(indices.reshape(-1, 3)) + + texture = None + if include_textures: + texture = self.get_texture_for_mesh(primitive, indices) + + mesh_obj = Meshes( + verts=[positions], faces=[indices], textures=texture + ) + names_meshes_list.append((mesh_name, mesh_obj)) + + if "children" in current_node: + children_node_indices = current_node["children"] + Q.extend( + [ + (current_transform, node_index) + for node_index in children_node_indices + ] + ) + + return names_meshes_list + + +def load_meshes( + path: Union[str, Path], + path_manager: PathManager, + include_textures: bool = True, +) -> List[Tuple[Optional[str], Meshes]]: + """ + Loads all the meshes from the default scene in the given GLB file. + and returns them separately. + + Args: + path: path to read from + path_manager: PathManager object for interpreting the path + include_textures: whether to load textures + + Returns: + List of (name, mesh) pairs, where the name is the optional name property + from the GLB file, or None if it is absent, and the mesh is a Meshes + object containing one mesh. + """ + with _open_file(path, path_manager, "rb") as f: + loader = _GLTFLoader(cast(BinaryIO, f)) + names_meshes_list = loader.load(include_textures=include_textures) + return names_meshes_list + + +class MeshGlbFormat(MeshFormatInterpreter): + """ + Implements loading meshes from glTF 2 assets stored in a + GLB container file or a glTF JSON file with embedded binary data. + + This implementation is quite restricted in what it supports. + + - It does not try to validate the input against the standard. + - It loads the default scene only. + - Only triangulated geometry is supported. + - The geometry of all meshes of the entire scene is aggregated into a single mesh. + Use `load_meshes()` instead to get un-aggregated (but transformed) ones. + - All material properties are ignored except for either vertex color, baseColorTexture + or baseColorFactor. If available, one of these (in this order) is exclusively + used which does not match the semantics of the standard. + """ + + def __init__(self): + self.known_suffixes = (".glb",) + + def read( + self, + path: Union[str, Path], + include_textures: bool, + device, + path_manager: PathManager, + **kwargs, + ) -> Optional[Meshes]: + if not endswith(path, self.known_suffixes): + return None + + names_meshes_list = load_meshes( + path=path, + path_manager=path_manager, + include_textures=include_textures, + ) + + meshes_list = [mesh for name, mesh in names_meshes_list] + mesh = join_meshes_as_scene(meshes_list) + return mesh.to(device) + + def save( + self, + data: Meshes, + path: Union[str, Path], + path_manager: PathManager, + binary: Optional[bool], + **kwargs, + ) -> bool: + return False diff --git a/pytorch3d/io/pluggable.py b/pytorch3d/io/pluggable.py index 161233fa..8c729300 100644 --- a/pytorch3d/io/pluggable.py +++ b/pytorch3d/io/pluggable.py @@ -86,6 +86,8 @@ class IO: interpreter: the new interpreter to use, which must be an instance of a class which inherits MeshFormatInterpreter. """ + if not isinstance(interpreter, MeshFormatInterpreter): + raise ValueError("Invalid interpreter") self.mesh_interpreters.appendleft(interpreter) def register_pointcloud_format( @@ -98,6 +100,8 @@ class IO: interpreter: the new interpreter to use, which must be an instance of a class which inherits PointcloudFormatInterpreter. """ + if not isinstance(interpreter, PointcloudFormatInterpreter): + raise ValueError("Invalid interpreter") self.pointcloud_interpreters.appendleft(interpreter) def load_mesh( diff --git a/pytorch3d/renderer/mesh/__init__.py b/pytorch3d/renderer/mesh/__init__.py index dfbde335..49af5f57 100644 --- a/pytorch3d/renderer/mesh/__init__.py +++ b/pytorch3d/renderer/mesh/__init__.py @@ -22,7 +22,7 @@ from .shader import ( ) from .shading import gouraud_shading, phong_shading from .textures import Textures # DEPRECATED -from .textures import TexturesAtlas, TexturesUV, TexturesVertex +from .textures import TexturesAtlas, TexturesBase, TexturesUV, TexturesVertex __all__ = [k for k in globals().keys() if not k.startswith("_")] diff --git a/tests/common_testing.py b/tests/common_testing.py index f7a22413..6e2cdc46 100644 --- a/tests/common_testing.py +++ b/tests/common_testing.py @@ -155,7 +155,7 @@ class TestCaseMixin(unittest.TestCase): ) if not close and msg is None: - diff = backend.abs(input - other) + 0.0 + diff = backend.abs(input + 0.0 - other) ratio = diff / backend.abs(other) try_relative = (diff <= atol) | (backend.isfinite(ratio) & (ratio > 0)) if try_relative.all(): @@ -167,7 +167,9 @@ class TestCaseMixin(unittest.TestCase): else: extra = "" shape = tuple(input.shape) + loc = np.unravel_index(diff.argmax(), shape) max_diff = diff.max() - self.fail(f"Not close. Max diff {max_diff}.{extra} Shape {shape}.") + msg = f"Not close. Max diff {max_diff}.{extra} Shape {shape}. At {loc}." + self.fail(msg) self.assertTrue(close, msg) diff --git a/tests/data/cow.glb b/tests/data/cow.glb new file mode 100644 index 0000000000000000000000000000000000000000..54b124b4bc43de4d08ae0bc8e3ce8020d232bd78 GIT binary patch literal 180048 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 G9rAy|u5(TR literal 0 HcmV?d00001 diff --git a/tests/data/glb_cow.png b/tests/data/glb_cow.png new file mode 100644 index 0000000000000000000000000000000000000000..aef052361ff31719be96cb5ffbb86e6d92169451 GIT binary patch literal 10784 zcmdsdg;!MV7w*iEg2)g8f~0geC^f*)AmvBHfOMyH42`59A&tNQinMfhw{!|fNVhOB zbLV&ei+j&nXPtcCwa?jm?fpE@em`oxRU#swCIA2cL@LTq9RL7`IRygnL72lVSVjN< z;Mh}v%D(f>InMRVu~G0l%`g2vu@W%Jk9;}?d8G!SAW@=_k6EV~*O;PuvPBwcN2*b{ z!&&sS`7dqJ!seh|;YWdFyI)XkWs~=nHm^uXQsecDOsvVYtiIF-lq~qXF8w=9U!U`4 zFDSq-z~8QP@-p}9-r9Z6C0!nDPWQjbOL9^Ye)a!IMuUJ)>vF0AUsQWR=A1-?@NdH0 zfRdU2e{aCI!(neu`~J88>4<%fPde=Z>mAuy;H6V3=8t-&Atr-flTz|5(>L{Ss3L_< zja}`l9}+702(v~7z%6@RP5l3wCsCITcbnDQH{B}i<$DQ78_kvblPzV(pt6isV8%0C z6>qrVh`sNG4fDmy5n6K0a#st#TDtT4Y5!VJiu)BPaWJMrI3mambT1;02zh8RFPC<* zrjg4PK)|51E)*2?_vSODds#hJJ#4FZ+K)i>2P0H`I2Xk$a5p$uR$jwt^W zm!!+s<5FfbW&9I95@6DD`ZJ2I86h*x&@Rzgd^kRcQG1Jp(&g~4xO}^+-yt#j1$;8- z_T2Kr!CW{_^;O`FL=w%2?E+YfVV>E0?n&EDkF%62!A1rE?tGW<`zD0L0{D_lP&da^ z@l#CuM}vP}Q-3>*n8F)RcZ!J+1Kf{)^r-4rDXRrl>KU2j0q~f&gsL$W#)P27dQUt6 zV2PE^d+jRv=GrmeXSkXa0NF`*IGX9ECd_+^Cp2Vv@Bt%+U2;V-Vy2V=(BP0^`IB;34}&yb|%Dqp?CCgT#tMe z>m`?t#-21X_VYvs!+5P?`*{)lscb}dXs~6>5S4sXe7!FN0~3gpU8?{rN04maZhPAC z`)ju+%+0wX9ly`@aoc(OcCB?4=7{J9iR+nM)GplK-qKRjIEorA?}wtKE9ylR9W|n! z8tT)Lgbw-L$uSg?!Bchcfq)`QOO=$XUn$9P`K`N0YUxPF3Sk4lVC?zF;o)!gh@HQ` zEkIL7c(7TxtQ-U^htD|lNpv|8`{;W{D&_+5N#_|c(F;q(!GWKmO02Buw`vuVzE7)t zAHehDchQVTmAMk4&ITJRv$G2eToFI%lID$Q7I44-5*3RIQ>vugtB(Ny4r~HOaDsr) zwSV25>g>-s)$EFNfq`oVe5(uh$o!B(Q?Yg*L)Xc3AfdVJ(Xw9<%(Y5Kb=W*d&LD&3 zso61&9S_B^($g1~Pf6^Z;{`J32dD%Umv>F^p}z)D0s~Z`F>*r>Pj7I@*^iV%{~)U5ShC<91rwjBY&Q#0#Tm?nkJe*TT#3sx}zm=q8y-Kpdf~7XBSo-gahq?0+{#*e#KWV9BQtc zN>rLt+R=5K4JTdS-WtOC+o8ehDG!^o(I~AeI>5^p`7whfP%9;TIebJhxsLLA9`U-Q zh!m}K!{v3=9OfT2iYBc$8;MBns7uy{BuiL{;?BVkhZRFqx~{^CgU?`>E1j)@KId$d zi8xu&{zVp#9xT>{sVO=fY3zv9l$&p5)6X zu71|rk7|Tm?8)KV4kmv;(sBP+@I1vs-kzg4RW*{ZF8qT;xK&KnIE69V>3_avsS0*Z zx0g^laGJ2B5AeKsWw8OGA$x-_;{fiNa9YmKZ@TtG64P<|2~IT0KWLGQx&IpyZ}~0K zvZO7R9*4S5TI8e=qc*O~XPi z3UJg{c2!q)`mjwbeZQD=eEw<>*D3#11Vkn!Cbx{=zq<6iPK603aMli9_de63HaVT6aPd-@Yw}{MaXBMCd;&niWy2xx7(Asxc4`{q z?p1WSQim6^v(e~V-84Q_j7nGa8PT(41>Wr-Hi;h)xAD$HydF+q3x4dG3TQ-d%}%t` z*2e74c!6hBL&9uR_Drt%E(v|s$CHhRcmLSN3@VIsyyVjIUbaPdhu2(&%RL+@Nef5` zks00F6=${H*E28qtvMdIX)t8{@^Lchq{E@e7`}*mqAw^VR6kl6k1h7OJq6Dc!jQKr}0E(#6^)`0!Txw@d({ zdgN<;V3+kKStzJ_ux6UVFdbniDk2gzSM|7CyI#7D>mAy%-CyNT1b8?ebU8UbK0f%y zq8jYP+*~13*LP+lBc*iJP!rlm07+2_(&pC)1 z-wS9H~m_{}jN|652Fa6Y?u)f-OvxOEu;iDzZz zH`2W6IRhWbxVg;^5Did)hGu?DJ5BsLEQ%&ZPdt0(y-!WiwRLxWSlLJ{efOKVlA12> zOU_d@b8H5%^O*dP2=6^5eD~oRjVP{S&#%=?JRjyCeICC}h4_o41 z2}?7a7s!Vm-|#!bBPL5e|83uWj{r-F=#N$ZVq4T-f1Ib8qU@+8%bY=Fp}7#%jz$*M z7HfG*!T*Y)>4H-$(CijKZldM=>6+eUsuipz77oS;a@Tg$HR3J9SzhB>St`LRBgRXm zyIy?CSH<;=pRK8zp!3?jAOq_4s|KIN*DqZkyNeOz7bT5teviu{-FMnLsQb~XV6?=B zUO9`l@o6?%oN=tc z=uV&2AWbtg5deT1^yKY)n2B>b3Ri?CV4L?II!Qg}%C~-;;R0d+2Y9B<1YR3Y8vP2` zSA!I-Jsx-MwD<5|9su4{uIp^S~s(*Dk)Yq52;Xd0vJpT|BRqWnSc@LPpZ{a^aiCdb413bs7ottV_bQ?s+P?%&BtHg5Om zUyF$TQgumec!WD2+W!4u`%giiej5@*KkMW<$HvAsEBsuW zqbZT5tL;>tzS~Yvn4VFs`Q?W1pDs%{3q*w_g1qLNlD6Z%nuz!|9yTcV;N!>hnwlDB z6+joRM>>FQZ;&2H_DeCN(wWKxh)!%`VINywkb07*1q--5!_gBU2#I z&!2T8r{#oA8gTT}Z*gCCVhjT4-_2?bMY0uQkl25{^2~kfK}gdNb`|yW_E|QD>GsY) z1+2iPXC_SlrLccX1;2N2Fd_&AEmW8~#tg8P9`Q5%3Su~AZARd%O9a>aZ@!9zswLNp z-yG9q$QvvOm&V{ATZxU$uEf(NkP%>NWmZUhYGYwx!A=-hP*ugpm-I)sr-u&+ia(XO z+3>LLG2J6|>#g)jnSA%_>-Q(xb#rgr?7Sw|gC_2SntS*4w+H=jAw^4)!lF0ZQkpNN z1+Id~XK^3U95fKXzPBpuQ1K1UXP$4{(8M z2Dfh8@D&z%Q#n9gzt7#NqBRZ|N|*W|A)UOb1Q!8}<1hUVqg_p-PTQEwF&S-%jF_2C zCM{UbqbZo6TN7U+?_4&sBB*r=z3eQ+HhdqcJzWvlL)p(v;8KhircNm>U;hthq{> zK6k`xevpSOIUL_WUTVsGgn21+gA4=}6%~UopYzqz1bl3J=g){=w%v{z5bJy#KW(C| zj>g5SY`#|&t8y61P!={UndQcUe-?FRg3&9;oI~o;I?k~|9+`uB)9{JIGNO``lNZb` zFPK$Ud7twRFs`@sNB8^P4zhOG8s1a{bW$b?>AHfGHF-a)aw5f4NR46p=j{P&g}v)| z^`cIXN|>m7LiOT>-}R{3k#`)2_2YYTGTQGD=z2(Didz2pm0MZeq_~DkW+@T=)B2j? z)Ou!MmlX15dL2*5xe{5F#IxdK#!(GOOvl(UtN0dEOi5;*`8(UZikfyZJ2FJlFZTst z<%did?&Ut}-q_u)-*&a%N&&z)ZOu)L`nD|E1OUMb7`mg=Xq~S^&>Z-ZC+44L28@C= z&;%%d+IqOSbsT)27={~spE>C}r&d+_!UBC$Uxhx@KW!i!h49ue9K~A&mCHLEdxV@m z2N8!Q#s2S)v|U(xk1Ac&Nn7A&+gE&u>iAJgOq@_i1qODxevi1pj~*P*&Y*-yh&bTXTG!%M;$DU@8V?e)FNgearm#S(D24dsSEDpDw$`={DjM zO7$UIv(`-wbPI^vd$^nk8YaxIDqdljtHf(G8cz!R+W?+L z&%lC%EA+y{eosac9mkL2E70stAN#C7o)Ocx-u&gNpEfMPq&xrrQK3rzZa#*>Yww@) zhFJ)Ee`Kytt6YA}f=Q4yj|yO<9605!($%h>IbR{{TyMlfBbH^IIq%IbHMNjoy)+(j zd61bIwTVB4fCs=8E^cxqQkY3V$5O&pUM1+ivyH$_5q+2;>gToT2;XvZq2E0&%yJs{ z%M51Vi}KI;?N@~rY%a20rl-4a&CfB(GI{Zxm*o%@t%nIFF7>x2&1?Gpi;2Ux@42+@ zBLmwQh0j->VQ+0h&^y0`0S`#ijWU+u^l_T}oYPhvOi>m%T5gtCu|E{bo*`mBTWLbl z2AU4Uj^4*|cYeD1gY`)CDO)wH@Nh@)BjVqFsf%YR6A12D*^#0Iii^UjrV2(6hyj^0 zt7Ri|tCfsL+6-_h2}s>UTsS5fZ-!HYTP-rQH=h}MCk?qIKk7HGQgq($7bQvCZv;hl zhi_Ic)q5%psa+N5eAg?#{^d~5tU{Vr#;iSpx>ml`Rn$ay)JUr?@fR{{*F#xUhqWxr zKgon+o5y!-?d9pV6tkTotGF@#pptV~7<7G7|WPBn0%fzhEXLky)Ms(}^pF;)!b^s9t-4pI-7|>ce ze$V5xUS~{0+s}_2e}55jB;S|-@l~K$*Fn`>XA~z?@jk;@Z8*2+NQ?0fK}w8z2qpS7 z;q8ZE7#=Zv{+PqCGst>H#kdlM;ObHHiA908WWqcn#26?v@D+9oB zUHbJSYXt@PvR8jrIt%L)g<@`L#eGNjI`9D>bvpg$2pMMwz!4GDU1|+7QuyW;-4yCT z?@)>n4A@hh-*^THJZ#2XsPz4}6{il3 zU=3`*RSKnkHt(pQ{rw^$3ofa=oHK{LjHx;QvaHN%AX_LX;Mr`7$9ESE-6`vrkau0b)S#}JH)G%LHhPTq8yQ$RbCV!OZ_VqfPrW9h6Al$k{AX6w$FO*eV;|v8lsI- zf+qEtB~R0M?+rfUJ!>H5Tu#FU+yfMLSJRHF8@PK(Ah`35Am6l6kQJn*<5!r$7CYELv=WpN8h{~ zzK|_E#^^z9n|^2>Y16@jg05To`%qeGiEaiL3H!Lm4_i|OF6O|o{-GgdrOuFsVb#{E zv`nR$IK5omb+wLr ziJGhTOXee<;xgyqJ|}^eg`_dx!_r5?8|K0j$t(+x0B`u;_>bD6QB#Y*Z_2*H{+&)r z-xc$`nH9C4VI4}+R1ZXrqCo(x#~?I1U;`Fq?ESI_GxJ4#fOkf`G=KJWe$aruN(%PJ zzWIDj;}&XCZD}hMv#_EZ{&JJc+J{c}<9~fSNLQ3Wy7liPwjX96?uUj4s2I*#XQ-GA zL?oSL_@#71NKYn5;5bv6rV>7qkE@o*%n>Umj4lHB7g*&q5fcm)K`nLsLtZN~MuF6C}pslK3a;Da@kUhs8YE z#hS|bpYJz34 zuH53$eD_{H2Xg0bMr1%GiMtQk^3aY*C5`k&dFEdpOrqrvgkpS83~kLGd$=6Df318C z-*1w5+7$Gs;?|zf@he*Qp$Wk6Cng)rWx>pdf5Z!#xJdvj;`1Qp{m1{#St^M$*?p}B zy!piD@)aCYnvmnsKPk1BShXP}BJ~Q~=(PS%h*IYAp>C2?FpDPP#|EwSjo)3<{u4%Q zB%3iwKbnbzffUFT1`xIw1VET%l}nm(xD%#~WYEo%cmFE#gGf(iFh19^S(u;=$HJ1f znq_I0*|y(v>D+7+9>4bwcx0urKD<>i!j3r)pV-+p$FCVjI|5dLQ37On=gU_L^TA$@C+U_CK}weY=6@SBYnA67Rh z<jt!E=;6kag;$|wV}dN!AHSDMbGN=T!Wjddz2%_B zW~f=0?XCH`f_Jx`dWC|9kkniLLf^{QRecf=s$G59Rh-OZ|12f`Ex>xp)raJT;m(yj zGcjWXgn@q`!k_s3=9G%_-;Na4EpNQ!rp0Ts71Q85|fuE@^i9|W5FYPq`H1Ui8_45`1@}9 zzPgy}6JyjhGK9_FYwpp&H(y|gv_Hk>P$0H_mMFCbO-DYvwWCyo<*tRN`(-|iK0>_3 z7npTGZ~`3B64pLgi`_C)TEAJfW%8t@rhZ9H9e8vug;8;CudkmIh`}$fpL9`uF0pT) z{*sj^?S9D$JLLTCWZgK!a8c;V)o0;Ghcj7UfAexV9m$ZNguP$! zIOBZ@DL33LS!^&8sPz$ZQ2SEg{xrQ*jVn4Y2syyUnq5IoQa_!%7Y+bms=!$-W&7sL zG37nh4sBnHh$Ef<&a?)N7&`*aK3e;VjLf*v$*|5}1PD(+=Ul!&ngN2e*?DqHsZxLB zv|SF&Z{T1eZeVIV;5O(u&y|jvwkYhB9wAE6{Kpg4cJ|;I5a4j^nu|(J{&z4n#Xvqk z$-X&xr!{Khn;C&fVLl)+!l5CvMffh*tUqV#zf+C*=D0I zV&%ueEP$!@jh%_P5DB3KMg9=~TA(QISyqMQJo zmS#1IdQYCBpUW|Am5DM(v3r5s3)SsVL89t- ztx0)`mK$y&?viC8{V?uZ;2I{;y~38h9-Fo03KyYK{ni~C+V(r?A>Z(G_mS%^CwyP_ zeBTe-jD$qhx|zH7^{!E7;+dSm3yvKK4E8W0cMs%sU}khfQEP)F0qYJxe-$gxFf%*LvIEAJ?GLwe#X0 zghOxw`d{K!#E5OPt?p~f?HGKPjr`FbN}G~ix)n#Ld$ac1TFdGDaUJOGn_SB5yW-<_ zw@&+4IHZ4!C<#b_Au_$YRXNrE{~=pFzhJsIm2NJc?L$qRd#qvcAsT1Z6qt zME1GSTo$+ROso?i!PV`xDq~uTd^nb$7Yg)4RfQvR%vLDe7?!gZ{~g)1oL?!=UJ1Lq zQi73iwOJs6%usM8MDJYzs2Ojc8Z&+|wjgG!cs!f(?*jnPl{Hr$*~MR~5_OSoM&lem zy=+%O7!-QUxT*@VfB915Rw+}!{g@m^MA-hyDxWT!rtbZ3x&nB`ljxY0x63oLx{jj8 zg!a0TU`M^GT2z2VNXAwh8^i*iYioG?W`K@i$Lb9_KjuA58P1dOp3vTpIL7$ri8+w` zleBe^uNy{r5(&6DX{?%@r!kl{k&2z&DeRdxUhw$+5`1Rpc>BCt6q@??-;@N0RlroKF{QPpj zqg7938NPYz3nmrPVjcx0<|40u>_kxnQgEW1K3~_~HiL{@a(|uEg>z!U0;pZ6`{+P| zro^oid6Vr1O0fa1w~E*x-z{RRakA9Z*0bIy%<#-yCz;XW2X7(7*ZR zfSAXQ1P8UZXU|tj?EMhR_nuh7=*R?h`O=)3@S#uhC21wguDdSdx-2R@D&V#I8t|R+ zYrZbh1mG&QvE8lnw^d0c!HLx!@feKnQoF#DuOg|aU;6&dEG1;Tp%Y(p5*DmLq{w4o zWsClhu|8CxnXfuLJ?0s^9{dc6`ZZ!K6 zbI0C!q|YJNU7$7>T?w2gJBuIYu68yyQ9FyC1?^k7F+;ANWL~hy9Kp=DHhvrNt>vd)yWK zN9xNLoSxYMmMO|b_fRpFLd;a6KTPW^)|Pp)MO~JwQ4yFG2>uT1w5L>OPCqdcXTyw_ zjZI0>HC9)7Rcpt(U9sVA#J1(D9=zR=(}Wwkh5*h;b)lQkmaqUgNTo31)Beh;j>WR% z>vB8m9ZUM5PXfjD!;;qnCOE7{<9b5cs+^3)Bv!YNv7b{oa%M7cFIM)nP3X$ZZ*rb5 zVG6F-fas1wh9tr8N7R2hEuE?yEM%CL$ty<&gyVyY$v^5OOc?f${lEm%)aoC^s^r@* z;U7I;T&6sA5$K{~+-b8_PZhKp0xJ`Q+e=WSbKZA;o)nNp3DnjHFjhVt0qqlbhmMRn zAl*MUYVB5BnK9CKRfLR>mz$v#Yd>NstnmC7mwmX!E+e6@ctAnX6&8~a`#w87j5kc; zWUGLZ0br~>nkY7sPREh3JToeZBa;AMzU8po#o*I|slX@?$NnVp!zKm20~^L+F*MD3+`>c52UzV(2 zZmMK`$NsYqtYRS)5HZXEtITI26{~969WFJWoUMw2aYkGp_TPV{^wr6r*W-PqEv{=T z;(tLU)hmJRgXtwgN`yZ14O57z6_#o6J`3w*3%jPVoY5m7>>W_290dH4b(3bbYebg` zRtl74SB+K!Vyz4nSqaqGt%P?~PW&Q!-@1cE$&MUbJL|hXxBSZF4|#Xy&+c9KMg;B0 zA0?nz2WW{{01_12D@r5QvWtj43wokV{pw6&K_UZGLec`w=&5~>CiNSljq`sK0K#o> z?BwE;>;O+Em$BGL94+%e50A@|1ntYyz5fc8$G{2slhjM!H22U`rW+48Si~|dZpJ?` zV9N@8w+aa1g$Ks0&C^F-M$wsDT)tI@n-+jhQQI;+O)}a@X|>gmCG=gX#7WC3UQ)4r z%h}Qw%^(y#YiUV4=>03ccb^mAR|mu7rr;MVJQ>AYw48 zY)+LpKJjty_7pv`)=KYpG`RLwDfoIq0)3F!ny9Y6+yAa7KG?z|KMcQ6+$lfWDPF+F z!DiQBJ^ML+E5sUg@7j45e>u7I)1tS5OstBUPF<)vErb+7iV$>;QEy*z5;cl?$|QZi zEwvG_iMLHgRztX+1^{eg+FhlcXNdo$)Lo*(w@dz8Q(bVakv}NKb43<0c2^V;$@JHn z-i`LtZcBGfJ$?+VtI#`KN7DQ6M<+R(G@iukYT65DXNtxw>Z)OqMUuLDJS|+KMUzlVWA&8ec)dN~HycZ#`r&CH8WnI#Si>21XXtHy{H3CPWcW4F38u_Mcey>Z^|fxGXQc zJ`CtI+X2eNvTmRl?G9;iHBBFfA$P*FZ$=})ssxC4TpFb%CC4!=8oGHPBW#RV0I6Hb zaZblmwVZi7G0BAOwwLRZeu$t%AnNn7vM_D93gHSdYBJr~BBg;rHr82g!sJpD;`byN zBdP;#Pi|P7*S7YiAo^Hvx3fg*nEZ?h==21Z(V;?4Dn>`xEr&fiM4NKkz#0IZZ82u3UT_GEuLctgI@WE z)Opv(%1zb&z1TF05O{8WQA7Y7$9>5wLZP{=CVQF3>*}Tg)?nR{2~l zx6nZK8XwR9RwSNrgLUl<0O|+}Ab(mEPS-nX3c&vZH+DM#&o@o!QuktJF)Kd-Dhh9* Jm2&1`{|A}9)0_YR literal 0 HcmV?d00001 diff --git a/tests/data/glb_cow_gray.png b/tests/data/glb_cow_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..084b59e8dd6ea555d66f07d663f3767ad095c9f6 GIT binary patch literal 5431 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 literal 0 HcmV?d00001 diff --git a/tests/test_io_gltf.py b/tests/test_io_gltf.py new file mode 100644 index 00000000..afb8e849 --- /dev/null +++ b/tests/test_io_gltf.py @@ -0,0 +1,180 @@ +# Copyright (c) Facebook, Inc. and its affiliates. All rights reserved. + +import unittest +from math import radians + +import numpy as np +import torch +from common_testing import TestCaseMixin, get_pytorch3d_dir, get_tests_dir +from PIL import Image +from pytorch3d.io import IO +from pytorch3d.io.experimental_gltf_io import MeshGlbFormat +from pytorch3d.renderer import ( + AmbientLights, + BlendParams, + FoVPerspectiveCameras, + PointLights, + RasterizationSettings, + look_at_view_transform, + rotate_on_spot, +) +from pytorch3d.renderer.mesh import ( + HardPhongShader, + MeshRasterizer, + MeshRenderer, + TexturesVertex, +) +from pytorch3d.structures import Meshes +from pytorch3d.transforms import axis_angle_to_matrix +from pytorch3d.vis.texture_vis import texturesuv_image_PIL + + +DATA_DIR = get_tests_dir() / "data" +TUTORIAL_DATA_DIR = get_pytorch3d_dir() / "docs/tutorials/data" +DEBUG = False + + +def _load(path, **kwargs) -> Meshes: + io = IO() + io.register_meshes_format(MeshGlbFormat()) + return io.load_mesh(path, **kwargs) + + +def _render( + mesh: Meshes, + name: str, + dist: float = 3.0, + elev: float = 10.0, + azim: float = 0, + image_size: int = 256, + pan=None, + RT=None, + use_ambient=False, +): + device = mesh.device + if RT is not None: + R, T = RT + else: + R, T = look_at_view_transform(dist, elev, azim) + if pan is not None: + R, T = rotate_on_spot(R, T, pan) + cameras = FoVPerspectiveCameras(device=device, R=R, T=T) + + raster_settings = RasterizationSettings( + image_size=image_size, blur_radius=0.0, faces_per_pixel=1 + ) + + # Init shader settings + if use_ambient: + lights = AmbientLights(device=device) + else: + lights = PointLights(device=device) + lights.location = torch.tensor([0.0, 0.0, 2.0], device=device)[None] + + blend_params = BlendParams( + sigma=1e-1, + gamma=1e-4, + background_color=torch.tensor([1.0, 1.0, 1.0], device=device), + ) + # Init renderer + renderer = MeshRenderer( + rasterizer=MeshRasterizer(cameras=cameras, raster_settings=raster_settings), + shader=HardPhongShader( + device=device, lights=lights, cameras=cameras, blend_params=blend_params + ), + ) + + output = renderer(mesh) + + image = (output[0, ..., :3].cpu().numpy() * 255).astype(np.uint8) + + if DEBUG: + Image.fromarray(image).save(DATA_DIR / f"glb_{name}_.png") + + return image + + +class TestMeshGltfIO(TestCaseMixin, unittest.TestCase): + def test_load_apartment(self): + """ + This is the example habitat example scene from inside + http://dl.fbaipublicfiles.com/habitat/habitat-test-scenes.zip + + The scene is "already lit", i.e. the textures reflect the lighting + already, so we want to render them with full ambient light. + """ + self.skipTest("Data not available") + + glb = DATA_DIR / "apartment_1.glb" + self.assertTrue(glb.is_file()) + device = torch.device("cuda:0") + mesh = _load(glb, device=device) + + if DEBUG: + texturesuv_image_PIL(mesh.textures).save(DATA_DIR / "out_apartment.png") + + for i in range(19): + # random locations in the apartment + eye = ((np.random.uniform(-6, 0.5), np.random.uniform(-8, 2), 0),) + at = ((np.random.uniform(-6, 0.5), np.random.uniform(-8, 2), 0),) + up = ((0, 0, -1),) + RT = look_at_view_transform(eye=eye, at=at, up=up) + _render(mesh, f"apartment_eau{i}", RT=RT, use_ambient=True) + + for i in range(12): + # panning around the inner room from one location + pan = axis_angle_to_matrix(torch.FloatTensor([0, radians(30 * i), 0])) + _render(mesh, f"apartment{i}", 1.0, -90, pan, use_ambient=True) + + def test_load_cow(self): + """ + Load the cow as converted to a single mesh in a glb file. + """ + glb = DATA_DIR / "cow.glb" + self.assertTrue(glb.is_file()) + device = torch.device("cuda:0") + mesh = _load(glb, device=device) + self.assertEqual(mesh.device, device) + + self.assertEqual(mesh.faces_packed().shape, (5856, 3)) + self.assertEqual(mesh.verts_packed().shape, (3225, 3)) + mesh_obj = _load(TUTORIAL_DATA_DIR / "cow_mesh/cow.obj") + self.assertClose( + mesh_obj.get_bounding_boxes().cpu(), mesh_obj.get_bounding_boxes() + ) + + if DEBUG: + texturesuv_image_PIL(mesh.textures).save(DATA_DIR / "out_cow.png") + image = _render(mesh, "cow", azim=4) + + with Image.open(DATA_DIR / "glb_cow.png") as f: + expected = np.array(f) + + self.assertClose(image, expected) + + def test_load_cow_no_texture(self): + """ + Load the cow as converted to a single mesh in a glb file. + """ + glb = DATA_DIR / "cow.glb" + self.assertTrue(glb.is_file()) + device = torch.device("cuda:0") + mesh = _load(glb, device=device, include_textures=False) + self.assertEqual(len(mesh), 1) + self.assertIsNone(mesh.textures) + + self.assertEqual(mesh.faces_packed().shape, (5856, 3)) + self.assertEqual(mesh.verts_packed().shape, (3225, 3)) + mesh_obj = _load(TUTORIAL_DATA_DIR / "cow_mesh/cow.obj") + self.assertClose( + mesh_obj.get_bounding_boxes().cpu(), mesh_obj.get_bounding_boxes() + ) + + mesh.textures = TexturesVertex(0.5 * torch.ones_like(mesh.verts_padded())) + + image = _render(mesh, "cow_gray") + + with Image.open(DATA_DIR / "glb_cow_gray.png") as f: + expected = np.array(f) + + self.assertClose(image, expected)