From 2d65a1581f678139286c64e64d101052fec31a74 Mon Sep 17 00:00:00 2001 From: Michael Wolf Date: Thu, 5 Sep 2024 15:49:58 +0200 Subject: [PATCH 1/3] Changed linked USD libraries to ${PXR_LIBRARIES} to allow for linking to a monolithic build --- fbx/src/CMakeLists.txt | 9 +-------- gltf/src/CMakeLists.txt | 5 +---- obj/src/CMakeLists.txt | 7 +------ ply/src/CMakeLists.txt | 7 +------ sbsar/src/CMakeLists.txt | 12 ++---------- stl/src/CMakeLists.txt | 10 +--------- utils/CMakeLists.txt | 11 +---------- 7 files changed, 8 insertions(+), 53 deletions(-) diff --git a/fbx/src/CMakeLists.txt b/fbx/src/CMakeLists.txt index 8a6b2787..ed38e6ed 100644 --- a/fbx/src/CMakeLists.txt +++ b/fbx/src/CMakeLists.txt @@ -27,14 +27,7 @@ PRIVATE target_link_libraries(usdFbx PRIVATE - tf - sdf - usd - usdGeom - usdSkel - usdShade - usdUtils - arch + ${PXR_LIBRARIES} fileformatUtils fbxsdk::fbxsdk ) diff --git a/gltf/src/CMakeLists.txt b/gltf/src/CMakeLists.txt index 267d4884..7ca3a9b5 100644 --- a/gltf/src/CMakeLists.txt +++ b/gltf/src/CMakeLists.txt @@ -31,10 +31,7 @@ PRIVATE target_link_libraries(usdGltf PRIVATE - usd - usdGeom - usdSkel - usdShade + ${PXR_LIBRARIES} tinygltf::tinygltf Threads::Threads fileformatUtils diff --git a/obj/src/CMakeLists.txt b/obj/src/CMakeLists.txt index 37a9d13a..45885e92 100644 --- a/obj/src/CMakeLists.txt +++ b/obj/src/CMakeLists.txt @@ -27,12 +27,7 @@ PRIVATE target_link_libraries(usdObj PUBLIC - tf - sdf - usd - usdGeom - usdSkel - usdShade + ${PXR_LIBRARIES} fileformatUtils fmt::fmt FastFloat::fast_float diff --git a/ply/src/CMakeLists.txt b/ply/src/CMakeLists.txt index 788207b2..7ed23f8b 100644 --- a/ply/src/CMakeLists.txt +++ b/ply/src/CMakeLists.txt @@ -25,12 +25,7 @@ PRIVATE target_link_libraries(usdPly PRIVATE - tf - sdf - usd - usdGeom - usdSkel - usdShade + ${PXR_LIBRARIES} happly::happly fileformatUtils ) diff --git a/sbsar/src/CMakeLists.txt b/sbsar/src/CMakeLists.txt index 6f01e8ca..f590a920 100644 --- a/sbsar/src/CMakeLists.txt +++ b/sbsar/src/CMakeLists.txt @@ -57,16 +57,8 @@ target_include_directories( target_link_libraries( ${PLUGIN_NAME} - PUBLIC tf - sdf - usd - usdGeom - usdShade - usdLux - usdMedia - usdRender - vt - hio + PUBLIC + ${PXR_LIBRARIES} ${SUBSTANCE_TARGETS} fileformatUtils ) diff --git a/stl/src/CMakeLists.txt b/stl/src/CMakeLists.txt index bcda4d0e..98b05d89 100644 --- a/stl/src/CMakeLists.txt +++ b/stl/src/CMakeLists.txt @@ -25,15 +25,7 @@ PRIVATE target_link_libraries(usdStl PRIVATE - tf - vt - sdf - usd - usdGeom - usdSkel - usdShade - usdLux - usdUtils + ${PXR_LIBRARIES} fileformatUtils ) diff --git a/utils/CMakeLists.txt b/utils/CMakeLists.txt index d0545b0c..0b3f553a 100644 --- a/utils/CMakeLists.txt +++ b/utils/CMakeLists.txt @@ -60,16 +60,7 @@ target_include_directories(fileformatUtils target_link_libraries(fileformatUtils PUBLIC OpenImageIO::OpenImageIO - tf - sdf - usd - usdGeom - usdLux - usdSkel - usdShade - usdUtils - usdVol - arch + ${PXR_LIBRARIES} ZLIB::ZLIB ) From e39b2d0823dab5941fb68a51151ecc953c8a3a16 Mon Sep 17 00:00:00 2001 From: Michael Wolf Date: Thu, 5 Sep 2024 16:14:22 +0200 Subject: [PATCH 2/3] Added find_package for OpenGL, needed for a standalone build. --- gltf/CMakeLists.txt | 1 + ply/CMakeLists.txt | 1 + stl/CMakeLists.txt | 1 + utils/CMakeLists.txt | 1 + 4 files changed, 4 insertions(+) diff --git a/gltf/CMakeLists.txt b/gltf/CMakeLists.txt index d1127491..617ddec3 100644 --- a/gltf/CMakeLists.txt +++ b/gltf/CMakeLists.txt @@ -16,6 +16,7 @@ find_package(TinyGLTF REQUIRED) if(USD_FILEFORMATS_ENABLE_DRACO) find_package(draco REQUIRED) endif() +find_package(OpenGL REQUIRED) add_subdirectory(src) diff --git a/ply/CMakeLists.txt b/ply/CMakeLists.txt index 921b8cbe..5229d8b0 100644 --- a/ply/CMakeLists.txt +++ b/ply/CMakeLists.txt @@ -9,6 +9,7 @@ if(USD_FILEFORMATS_BUILD_TESTS) find_package(GTest REQUIRED) endif() find_package(Happly REQUIRED) +find_package(OpenGL REQUIRED) add_subdirectory(src) diff --git a/stl/CMakeLists.txt b/stl/CMakeLists.txt index bc5e97a0..c8f422e4 100644 --- a/stl/CMakeLists.txt +++ b/stl/CMakeLists.txt @@ -9,6 +9,7 @@ endif() if(USD_FILEFORMATS_BUILD_TESTS) find_package(GTest REQUIRED) endif() +find_package(OpenGL REQUIRED) add_subdirectory(src) diff --git a/utils/CMakeLists.txt b/utils/CMakeLists.txt index 0b3f553a..d7251f81 100644 --- a/utils/CMakeLists.txt +++ b/utils/CMakeLists.txt @@ -4,6 +4,7 @@ if (NOT TARGET usd) endif() find_package(OpenImageIO REQUIRED) find_package(ZLIB REQUIRED) +find_package(OpenGL REQUIRED) if(USD_FILEFORMATS_BUILD_TESTS) find_package(GTest REQUIRED) endif() From 13232e521f493b231e9b347429f498418b5bb117 Mon Sep 17 00:00:00 2001 From: Michael Wolf Date: Mon, 28 Oct 2024 15:24:56 +0100 Subject: [PATCH 3/3] Fixed issues to tp explicit GfVec3f conversion in USD 24.11 --- ply/src/plyExport.cpp | 4 ++-- stl/src/stlExport.cpp | 2 +- utils/geometry.cpp | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/ply/src/plyExport.cpp b/ply/src/plyExport.cpp index 09ca28f4..3da5e0fc 100644 --- a/ply/src/plyExport.cpp +++ b/ply/src/plyExport.cpp @@ -178,10 +178,10 @@ aggregateMeshInstance(PlyTotalMesh& totalMesh, } for (size_t i = 0; i < currentMeshPointsSize; i++) { - totalMesh.points[pointsOffset + i] = modelMatrix.Transform(mesh.points[i]); + totalMesh.points[pointsOffset + i] = PXR_NS::GfVec3f(modelMatrix.Transform(mesh.points[i])); } for (size_t i = 0; i < mesh.normals.values.size(); i++) { - totalMesh.normals[normalsOffset + i] = normalMatrix.TransformDir(mesh.normals.values[i]); + totalMesh.normals[normalsOffset + i] = PXR_NS::GfVec3f(normalMatrix.TransformDir(mesh.normals.values[i])); totalMesh.normals[normalsOffset + i].Normalize(); } for (size_t i = 0; i < mesh.uvs.values.size(); i++) { diff --git a/stl/src/stlExport.cpp b/stl/src/stlExport.cpp index a01a63b3..f945853c 100644 --- a/stl/src/stlExport.cpp +++ b/stl/src/stlExport.cpp @@ -54,7 +54,7 @@ exportStl(const ExportStlOptions& options, const UsdData& usd, StlModel& stl) const int vertex_index = meshIndices[i + j]; const PXR_NS::GfVec3f& vertex_data = mesh.points[vertex_index]; const PXR_NS::GfVec3f transformedPoint = - node.worldTransform.Transform(vertex_data); + PXR_NS::GfVec3f(node.worldTransform.Transform(vertex_data)); vertex.x = transformedPoint[0]; vertex.y = transformedPoint[1]; vertex.z = transformedPoint[2]; diff --git a/utils/geometry.cpp b/utils/geometry.cpp index 1621c816..f34b9f82 100644 --- a/utils/geometry.cpp +++ b/utils/geometry.cpp @@ -1132,21 +1132,21 @@ transformMesh(Mesh& mesh, const GfMatrix4d& modelMatrix) unsigned int pointsSize = mesh.points.size(); for (unsigned int i = 0; i < pointsSize; i++) { - mesh.points[i] = modelMatrix.Transform(mesh.points[i]); + mesh.points[i] = PXR_NS::GfVec3f(modelMatrix.Transform(mesh.points[i])); } const GfMatrix3d rotMatrix = modelMatrix.ExtractRotationMatrix(); const GfMatrix3d normalMatrix = rotMatrix.GetInverse().GetTranspose(); unsigned int normalsSize = mesh.normals.values.size(); for (unsigned int i = 0; i < normalsSize; i++) { - mesh.normals.values[i] = normalMatrix * mesh.normals.values[i]; + mesh.normals.values[i] = PXR_NS::GfVec3f(normalMatrix * mesh.normals.values[i]); mesh.normals.values[i].Normalize(); } unsigned int tangentsSize = mesh.tangents.values.size(); for (unsigned int i = 0; i < tangentsSize; i++) { // tangent.w does not require transformation GfVec4f& tangent = mesh.tangents.values[i]; - GfVec3f tangentXYZ = rotMatrix * GfVec3f(tangent[0], tangent[1], tangent[2]); + GfVec3f tangentXYZ = PXR_NS::GfVec3f(rotMatrix * GfVec3f(tangent[0], tangent[1], tangent[2])); tangentXYZ.Normalize(); tangent = GfVec4f(tangentXYZ[0], tangentXYZ[1], tangentXYZ[2], tangent[3]); }