Skip to content

Commit d00097d

Browse files
authored
v1.2.0
v1.2.0
1 parent cb6f3b7 commit d00097d

File tree

212 files changed

+6709
-2690
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

212 files changed

+6709
-2690
lines changed

.github/workflows/ci.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,10 @@ jobs:
4747
matrix: ${{fromJson(needs.prepare-matrix.outputs.matrix)}}
4848
name: build (${{ matrix.os }}-${{ matrix.usd_version }}-${{ matrix.config }})
4949
steps:
50+
- uses: lukka/get-cmake@latest
51+
with:
52+
cmakeVersion: "~3.26.0"
53+
5054
- uses: actions/checkout@v4
5155
- uses: ilammy/msvc-dev-cmd@v1
5256
- name: Setup Python

.github/workflows/create-usd-release.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@ jobs:
3535
matrix:
3636
os: ${{ fromJson(needs.prepare-matrix.outputs.matrix) }}
3737
steps:
38+
- uses: lukka/get-cmake@latest
39+
with:
40+
cmakeVersion: "~3.26.0"
41+
3842
- uses: actions/checkout@v4
3943

4044
- name: Check if artifact exists in 'USD-${{ github.event.inputs.usd_version }}-Artifacts' Release

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ build-meta
3838

3939
# Python
4040
/.venv*
41+
/venv*
4142

4243
# ide folder
4344
.vscode/*
@@ -55,5 +56,5 @@ test/assets/obj/*/*.usd
5556
test/assets/ply/*.usd
5657
test/assets/stl/*.usd
5758

58-
# Other
59+
# .DS_Store
5960
.DS_Store

README.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,11 @@ The following dependencies are needed:
6666
* Install python and the following pip components: `pyside6`, `pyopengl`.
6767
* Build and install USD entering in a terminal (in windows a x64 Native Tools Command prompt):
6868
```
69-
python <USD_SOURCE_PATH>/build_scripts/build_usd.py <USD_INSTALL_PATH> --draco --openimageio --build-variant release
69+
python <USD_SOURCE_PATH>/build_scripts/build_usd.py <USD_INSTALL_PATH> --onetbb --no-examples --draco --openimageio --build-variant release
7070
```
7171
72+
`--no-examples` is needed to omit the example plugin usdObj that ships with USD from the install, as it will conflict with our usdObj plugin.
73+
7274
Add `--build-target universal` for universal binaries in macos.
7375
7476
If adding `--openimageio` you may need these fixes:
@@ -269,4 +271,4 @@ To generate the documentation go to the project root folder and enter:
269271
```
270272
doxygen
271273
```
272-
The resulting documentation will be placed at the `docs` folder.
274+
The resulting documentation will be placed at the `docs` folder.

changelog.txt

Lines changed: 54 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,56 @@
1+
v1.2.0 October 22nd, 2025
2+
fbx:
3+
- fix mesh import when fbx mesh is a root node
4+
- do not require `gtest` if tests are disabled
5+
- bind meshes that have materials but no elementmaterials
6+
- add 'triangulatemeshes' import option to allow control of whether triangulation should be performed
7+
- add generator metadata to USD
8+
- support bitangents/tangents during import/emport
9+
- fix material property mapping for non lambert/phong shader models
10+
gltf:
11+
- fix material index lookup when material is missing
12+
- support khr_materials_volume_scatter extension
13+
- improved support for gltf scattering extension
14+
- add support for textures with brackets in their file names
15+
- support EXT_materials_specular_edge_color & EXT_materials_clearcoat_color
16+
- add generator metadata to USD
17+
- fix various crashes
18+
- support bitangents/tangents during import/export
19+
- fix inverted normal maps
20+
obj:
21+
- replace backslash with slash in texture filepath
22+
- fix crash on loading a file > 2gb
23+
- allow single value for ke material setting
24+
ply:
25+
- fix reading gsplat sh coefficients
26+
- fix export issues when not all meshes have uvs or normals
27+
- remove clipping to SH0 for Gsplat
28+
- fix GSplat import and export and add support to SH4
29+
spz:
30+
- remove clipping to SH0 for Gsplat
31+
- fix GSplat import and export and add support to SH4
32+
sbsar:
33+
- expose uv texture repeat controls
34+
- panorama support
35+
- refactor of sbsar for MaterialX support
36+
- allow for unlimited cache
37+
- switching the default normal format to sbsar
38+
stl:
39+
- reverse normals on export
40+
- support empty normals on import
41+
- calculate geometric normals on import
42+
utility:
43+
- increase MaterialX OpenPBR support
44+
- improve shared file format args
45+
- refactor input struct & material processing
46+
- fix for crash in smooth normals computation
47+
- update test baseline images for 24.11 renderer changes
48+
cmake:
49+
- switch from cmake FetchContent to CPM
50+
- updating openimageio cmake
51+
usd:
52+
- adding support for usd 25.05.01
53+
154
v1.1.1 March 10th, 2025
255
fbx:
356
- added null and index checks
@@ -262,4 +315,4 @@ utility:
262315
- asset resolver fix
263316

264317
v0.9.0 November 10, 2023
265-
- Initial release of fbx, gltf, obj, ply and stl USD fileformat plugins.
318+
- Initial release of fbx, gltf, obj, ply and stl USD fileformat plugins.

cmake/FindFastFloat.cmake

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -30,20 +30,14 @@ endif()
3030

3131
if(USD_FILEFORMATS_FORCE_FETCHCONTENT OR USD_FILEFORMATS_FETCH_FASTFLOAT)
3232
message(STATUS "Fetching FastFloat")
33-
include(FetchContent)
34-
FetchContent_Declare(
35-
FastFloat
33+
include(CPM)
34+
CPMAddPackage(
35+
NAME FastFloat
3636
GIT_REPOSITORY "https://github.com/lemire/fast_float.git"
3737
GIT_TAG "v1.1.2" # 8159e8bcf63c1b92f5a51fb550f966e56624b209
38-
OVERRIDE_FIND_PACKAGE
3938
)
40-
FetchContent_MakeAvailable(FastFloat)
41-
if (fastfloat_POPULATED)
42-
set(FastFloat_FOUND TRUE)
43-
add_library(FastFloat::fast_float ALIAS fast_float)
44-
elseif(${FastFloat_FIND_REQUIRED})
45-
message(FATAL_ERROR "Could not fetch FastFloat")
46-
endif()
39+
set(FastFloat_FOUND TRUE)
40+
add_library(FastFloat::fast_float ALIAS fast_float)
4741
else()
4842
if(${FastFloat_FIND_REQUIRED})
4943
find_package(FastFloat CONFIG REQUIRED)

cmake/FindGTest.cmake

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -30,24 +30,19 @@ endif()
3030

3131
if(USD_FILEFORMATS_FORCE_FETCHCONTENT OR USD_FILEFORMATS_FETCH_GTEST)
3232
message(STATUS "Fetching GTest")
33-
include(FetchContent)
34-
FetchContent_Declare(
35-
googletest # using GTest here triggers errors
36-
GIT_REPOSITORY "https://github.com/google/googletest.git"
37-
GIT_TAG "release-1.11.0"
38-
OVERRIDE_FIND_PACKAGE
39-
)
33+
include(CPM)
4034
set(BUILD_SHARED_LIBS OFF)
4135
set(gtest_force_shared_crt ON)
4236
set(BUILD_GMOCK OFF)
4337
set(BUILD_GTEST ON)
44-
FetchContent_MakeAvailable(googletest)
38+
CPMAddPackage(
39+
NAME googletest # using GTest here triggers errors
40+
GIT_REPOSITORY "https://github.com/google/googletest.git"
41+
GIT_TAG "release-1.11.0"
42+
)
4543
set(BUILD_SHARED_LIBS ON)
46-
if(googletest_POPULATED)
47-
set(GTest_FOUND TRUE)
48-
elseif(${GTest_FIND_REQUIRED})
49-
message(FATAL_ERROR "Could not fetch GTest")
50-
endif()
44+
45+
set(GTest_FOUND TRUE)
5146
else()
5247
if(${GTest_FIND_REQUIRED})
5348
find_package(GTest CONFIG REQUIRED)

cmake/FindHapply.cmake

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -36,21 +36,15 @@ endif()
3636

3737
if(USD_FILEFORMATS_FORCE_FETCHCONTENT OR USD_FILEFORMATS_FETCH_HAPPLY)
3838
message(STATUS "Fetching Happly")
39-
include(FetchContent)
40-
FetchContent_Declare(
41-
Happly
39+
include(CPM)
40+
CPMAddPackage(
41+
NAME happly
4242
GIT_REPOSITORY "https://github.com/nmwsharp/happly.git"
4343
GIT_TAG "cfa2611550bc7da65855a78af0574b65deb81766"
44-
OVERRIDE_FIND_PACKAGE
4544
)
46-
FetchContent_MakeAvailable(Happly)
47-
if (happly_POPULATED)
48-
set(Happly_FOUND TRUE)
49-
add_library(happly::happly INTERFACE IMPORTED)
50-
target_include_directories(happly::happly INTERFACE ${happly_SOURCE_DIR})
51-
elseif(${Happly_FIND_REQUIRED})
52-
message(FATAL_ERROR "Could not fetch Happly")
53-
endif()
45+
set(Happly_FOUND TRUE)
46+
add_library(happly::happly INTERFACE IMPORTED)
47+
target_include_directories(happly::happly INTERFACE ${happly_SOURCE_DIR})
5448
else()
5549
include(FindPackageHandleStandardArgs)
5650

cmake/FindLibXml2.cmake

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -30,25 +30,19 @@ endif()
3030

3131
if(USD_FILEFORMATS_FORCE_FETCHCONTENT OR USD_FILEFORMATS_FETCH_LIBXML2)
3232
message(STATUS "Fetching libxml2")
33-
include(FetchContent)
34-
FetchContent_Declare(
35-
LibXml2
36-
GIT_REPOSITORY "https://github.com/GNOME/libxml2.git"
37-
GIT_TAG "ae383bdb74523ddaf831d7db0690173c25e483b3" # Release v2.10.0
38-
OVERRIDE_FIND_PACKAGE
39-
)
33+
include(CPM)
4034
set(BUILD_SHARED_LIBS OFF) # otherwise fails
4135
set(LIBXML2_WITH_ICONV OFF)
4236
set(LIBXML2_WITH_LZMA OFF)
4337
set(LIBXML2_WITH_PYTHON OFF)
4438
set(LIBXML2_WITH_ZLIB ON)
4539
set(LIBXML2_WITH_TESTS OFF)
46-
FetchContent_MakeAvailable(LibXml2)
47-
if(libxml2_POPULATED)
48-
set(LibXml2_FOUND TRUE)
49-
elseif(${LibXml2_FIND_REQUIRED})
50-
message(FATAL_ERROR "Could not fetch LibXml2")
51-
endif()
40+
CPMAddPackage(
41+
NAME LibXml2
42+
GIT_REPOSITORY "https://github.com/GNOME/libxml2.git"
43+
GIT_TAG "ae383bdb74523ddaf831d7db0690173c25e483b3" # Release v2.10.0
44+
)
45+
set(LibXml2_FOUND TRUE)
5246
else()
5347
message(STATUS "Find LibXml2 ${LibXml2_ROOT}")
5448
if(${LibXml2_FIND_REQUIRED})

cmake/FindOpenImageIO.cmake

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
44
Finds the OpenImageIO library.
55
This find module will simply redirect to a find_package(CONFIG) hinted to look
6-
into the pxr_DIR.
6+
into the pxr_ROOT.
77
88
99
Imported Targets
@@ -25,12 +25,33 @@ This will define the following variables:
2525
2626
2727
#]=======================================================================]
28-
if (TARGET OpenImageIO::OpenImageIO)
28+
if (TARGET OpenImageIO::OpenImageIO AND TARGET OpenImageIO::OpenImageIO_Util)
2929
return()
3030
endif()
3131

3232
if(${OpenImageIO_FIND_REQUIRED})
33-
find_package(OpenImageIO PATHS ${pxr_DIR} ${pxr_DIR}/lib64 REQUIRED)
33+
find_package(OpenImageIO PATHS ${pxr_ROOT} ${pxr_ROOT}/lib64 REQUIRED)
3434
else()
35-
find_package(OpenImageIO PATHS ${pxr_DIR} ${pxr_DIR}/lib64)
35+
find_package(OpenImageIO PATHS ${pxr_ROOT} ${pxr_ROOT}/lib64)
36+
endif()
37+
38+
# Ensure both OpenImageIO and OpenImageIO_Util targets are available
39+
if(NOT TARGET OpenImageIO::OpenImageIO_Util AND TARGET OpenImageIO::OpenImageIO)
40+
# Sometimes the Util library is named differently, try to find it
41+
get_target_property(OIIO_LOCATION OpenImageIO::OpenImageIO LOCATION)
42+
get_filename_component(OIIO_DIR ${OIIO_LOCATION} DIRECTORY)
43+
44+
# Look for the util library in the same directory
45+
find_library(OIIO_UTIL_LIB
46+
NAMES OpenImageIO_Util libOpenImageIO_Util
47+
PATHS ${OIIO_DIR}
48+
NO_DEFAULT_PATH
49+
)
50+
51+
if(OIIO_UTIL_LIB)
52+
add_library(OpenImageIO::OpenImageIO_Util UNKNOWN IMPORTED)
53+
set_target_properties(OpenImageIO::OpenImageIO_Util PROPERTIES
54+
IMPORTED_LOCATION ${OIIO_UTIL_LIB}
55+
)
56+
endif()
3657
endif()

0 commit comments

Comments
 (0)