diff --git a/meshroom/core/attribute.py b/meshroom/core/attribute.py index 613d3bd52a..34523ab9a0 100644 --- a/meshroom/core/attribute.py +++ b/meshroom/core/attribute.py @@ -53,7 +53,7 @@ class Attribute(BaseObject): """ LINK_EXPRESSION_REGEX = re.compile(r'^\{[A-Za-z]+[A-Za-z0-9_.\[\]]*\}$') VALID_IMAGE_SEMANTICS = ["image", "imageList", "sequence"] - VALID_3D_EXTENSIONS = [".obj", ".stl", ".fbx", ".gltf", ".abc", ".ply"] + VALID_3D_EXTENSIONS = [".obj", ".stl", ".fbx", ".gltf", ".abc", ".ply", ".usdc", ".usda"] VALID_TEXT_EXTENSIONS = [".txt", ".json", ".log", ".csv", ".md"] @staticmethod diff --git a/meshroom/ui/qml/Viewer3D/MediaLoader.qml b/meshroom/ui/qml/Viewer3D/MediaLoader.qml index 4c5606eae5..31b91b0398 100644 --- a/meshroom/ui/qml/Viewer3D/MediaLoader.qml +++ b/meshroom/ui/qml/Viewer3D/MediaLoader.qml @@ -57,6 +57,8 @@ import Utils 1.0 component = sceneLoaderEntityComponent } break + case ".usda": + case ".usdc": case ".abc": case ".json": case ".sfm": diff --git a/meshroom/ui/qml/Viewer3D/Viewer3DSettings.qml b/meshroom/ui/qml/Viewer3D/Viewer3DSettings.qml index 8d97a26fad..473748464b 100644 --- a/meshroom/ui/qml/Viewer3D/Viewer3DSettings.qml +++ b/meshroom/ui/qml/Viewer3D/Viewer3DSettings.qml @@ -17,6 +17,8 @@ Item { readonly property var supportedExtensions: { var exts = [".obj", ".stl", ".fbx", ".gltf", ".ply"]; if (supportSfmData) { + exts.push(".usda") + exts.push(".usdc") exts.push(".abc") exts.push(".json") exts.push(".sfm") diff --git a/tests/test_attributes.py b/tests/test_attributes.py index 22b9a2fecf..9eb8543311 100644 --- a/tests/test_attributes.py +++ b/tests/test_attributes.py @@ -4,7 +4,7 @@ import logging logger = logging.getLogger('test') -valid3DExtensionFiles = [(f'test.{ext}', True) for ext in ('obj', 'stl', 'fbx', 'gltf', 'abc', 'ply')] +valid3DExtensionFiles = [(f'test.{ext}', True) for ext in ('obj', 'stl', 'fbx', 'gltf', 'abc', 'ply', 'usda', 'usdc')] invalid3DExtensionFiles = [(f'test.{ext}', False) for ext in ('', 'exe', 'jpg', 'png', 'py')] valid2DSemantics= [(semantic, True) for semantic in ('image', 'imageList', 'sequence')]