Skip to content

Commit 8fab4c3

Browse files
authored
Merge pull request #12 from Autodesk/kheloua/v0.10.0
v0.10.0 release
2 parents 79005ec + 34cc498 commit 8fab4c3

File tree

258 files changed

+18076
-8935
lines changed

Some content is hidden

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

258 files changed

+18076
-8935
lines changed

.clang-format

+2-2
Original file line numberDiff line numberDiff line change
@@ -67,11 +67,11 @@ IncludeCategories:
6767
Priority: 4
6868

6969
# 5. MaxUsd Headers
70-
- Regex: '^<(MaxUsd)/'
70+
- Regex: '^<(MaxUsd/)|(MaxUsd.h)|(BoostPythonWrapper.h)'
7171
Priority: 5
7272

7373
# 6. UsdUfe library headers
74-
- Regex: '^<usdUfe/'
74+
- Regex: '^<(usdUfe|UsdLayerEditor)/'
7575
Priority: 6
7676

7777
# 7. Pixar + USD headers

.gitignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,5 @@ src/**/GeneratedFiles/
2828
docs/html/
2929
SDK/
3030
src/Tests/Integration/SystemTestGup/
31-
devkit/
31+
*.TMP
32+
devkit/

build-scripts/Prepare-PackageContents.ps1

+14-9
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ if ($ArtifactsXmlFile.Equals("")) {
3939

4040
# Early bail out on error
4141
$ErrorActionPreference = "Stop"
42-
$UnstableSdk = @("2026")
42+
$UnstableSdk = @("2027")
4343

4444
if ($Distrib -And $UnstableSdk -contains $TargetVersion) {
4545
[xml]$ArtifactsXmlDocument = Get-Content -Path $ArtifactsXmlFile
@@ -103,14 +103,19 @@ function UpdateMinMaxRuntimeRequirementBasedOnTargetVersion {
103103
[String]$MinMaxVersion
104104
)
105105
$XmlDocument.SelectNodes("//RuntimeRequirements") | ForEach-Object {
106-
$_.Attributes.RemoveNamedItem("SeriesMin")
107-
$_.Attributes.RemoveNamedItem("SeriesMax")
108-
$minAttr = $XmlDocument.CreateAttribute("SeriesMin")
109-
$minAttr.Value = "$MinMaxVersion"
110-
$maxAttr = $XmlDocument.CreateAttribute("SeriesMax")
111-
$maxAttr.Value = "$MinMaxVersion"
112-
$_.Attributes.SetNamedItem($minAttr)
113-
$_.Attributes.SetNamedItem($maxAttr)
106+
# Update the version only if the target version is equal or above the min version.
107+
if($MinMaxVersion -ge $_.SeriesMin)
108+
{
109+
$_.Attributes.RemoveNamedItem("SeriesMin")
110+
$minAttr = $XmlDocument.CreateAttribute("SeriesMin")
111+
$minAttr.Value = "$MinMaxVersion"
112+
$_.Attributes.SetNamedItem($minAttr)
113+
114+
$_.Attributes.RemoveNamedItem("SeriesMax")
115+
$maxAttr = $XmlDocument.CreateAttribute("SeriesMax")
116+
$maxAttr.Value = "$MinMaxVersion"
117+
$_.Attributes.SetNamedItem($maxAttr)
118+
}
114119
}
115120
}
116121

build-scripts/build-solution.py

+3
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
# 2) the help text to display when help is invoked for the current script
2525
artifact_map = {'maxsdk':('MaxSDK', 'The path location for the \'MaxSDK\' folder.'),
2626
'qtinstall':('QtInstall', 'The Qt reference version from QtVsTools (aka \'Qt Installation\').'),
27+
'pybind11inc':('PyBind11Inc', 'The path location for the \'pybind11\' include folder.'),
2728
'materialx':('MaterialXDir', 'The path location for the 3ds Max MaterialX material plugin folder.'),
2829
'googletest':('GoogleTestDir', 'The path location for the \'gtest\' folder.'),
2930
'pyopengl':('PyOpenGLDir', 'The path location for the \'OpenGL\' Python module (PyOpenGL).'),
@@ -35,6 +36,8 @@
3536
'ufeinc':('UfeInc', 'The path location for the \'Ufe\' include folder. If not provided, using the path from the \'devkit\' if the \'maxusddevkit\' option is provided.'),
3637
'ufelib':('UfeLib', ' The path location for the \'Ufe\' lib folder. If not provided, using the path from the \'devkit\' if the \'maxusddevkit\' option is provided.'),
3738
'usdufe':('UsdUfeDir', 'The path location for the \'UsdUfe\' folder. If not provided, using the path from the \'devkit\' if the \'maxusddevkit\' option is provided.'),
39+
'usdlayereditor':('UsdLayerEditorDir', 'The path location for the \'UsdLayerEditor\' folder. If not provided, using the path from the \'devkit\' if the \'maxusddevkit\' option is provided.'),
40+
'usdsharedcomponent':('UsdSharedComponentsDir', 'The path location for the \'usdSharedComponents\' folder. If not provided, using the path from the \'devkit\' if the \'maxusddevkit\' option is provided.'),
3841
'openusd':('PxrUsdRoot', 'The path location for the \'OpenUSD\' folder. If not provided, using the path from the \'devkit\' if the \'maxusddevkit\' option is provided.'),
3942
'tbb':('TBBDir', 'The path location for the \'TBB\' folder. If not provided, using the path from the \'OpenUSD\' if the \'openusd\' or \'maxusddevkit\' option is provided.'),
4043
'boostinc':('BoostInc', 'The path location for the \'Boost\' include folder. If not provided, using the path from the \'OpenUSD\' if the \'openusd\' or \'maxusddevkit\' option is provided.'),

build-scripts/configure-vsdevcmd.bat

+1-1
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ goto :End
106106

107107
:2022
108108
set VS_VERSION_RANGELO=17.0
109-
set VS_VERSION_RANGEHI=17.9
109+
set VS_VERSION_RANGEHI=17.11
110110
goto :vswhere_vcvarsall
111111

112112
:2019

doc/build.md

+35-15
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,3 @@
1-
2-
3-
4-
5-
6-
71
# Building
82

93
## Getting and Building the Code
@@ -73,7 +67,7 @@ The OpenUSD library can also be rebuilt to fit with your needs. See OpenUSD's of
7367
7468
| | ![](images/logo-horizontal-color.svg) | USD version used in 3ds Max | USD source for MaxUsd |
7569
|:------------: |:---------------: |:------------------------:|:-------------------------:|
76-
| CommitID/Tags | Officially supported:<br> [v21.11](https://github.com/PixarAnimationStudios/OpenUSD/tree/v21.11), [v22.11](https://github.com/PixarAnimationStudios/OpenUSD/tree/v22.11), [v23.11](https://github.com/PixarAnimationStudios/OpenUSD/tree/v23.11)| 3ds Max 2022 = v21.11<br>3ds Max 2023 = v21.11<br>3ds Max 2024 = v22.11<br>3ds Max 2025 = v23.11<br>Codename Devi = v24.05 | [v21.11-MaxUsd-Public](https://github.com/autodesk-forks/USD/tree/v21.11-MaxUsd-Public)<br>[v22.11-MaxUsd-Public](https://github.com/autodesk-forks/USD/tree/v22.11-MaxUsd-Public)<br>[v23.11-MaxUsd-Public](https://github.com/autodesk-forks/USD/tree/v23.11-MaxUsd-Public) |
70+
| CommitID/Tags | Officially supported:<br> [v21.11](https://github.com/PixarAnimationStudios/OpenUSD/tree/v21.11), [v22.11](https://github.com/PixarAnimationStudios/OpenUSD/tree/v22.11), [v23.11](https://github.com/PixarAnimationStudios/OpenUSD/tree/v23.11) | 3ds Max 2022 = v21.11<br>3ds Max 2023 = v21.11<br>3ds Max 2024 = v22.11<br>3ds Max 2025 = v23.11 | [v21.11-MaxUsd-Public](https://github.com/autodesk-forks/USD/tree/v21.11-MaxUsd-Public)<br>[v22.11-MaxUsd-Public](https://github.com/autodesk-forks/USD/tree/v22.11-MaxUsd-Public)<br>[v23.11-MaxUsd-Public](https://github.com/autodesk-forks/USD/tree/v23.11-MaxUsd-Public) |
7771

7872
The OpenUSD component has dependencies that are being reused to build the 3ds Max USD component (boost and TBB are dependencies to the 3ds Max USD) . Their source files are automatically fetched and built by the build script of OpenUSD. The table below reports on the various dependencies being used by the compiled version of OpenUSD found in the 3ds Max USD plugin.
7973

@@ -83,22 +77,30 @@ The OpenUSD component has dependencies that are being reused to build the 3ds Ma
8377
| boost | 1.70.0 | 1.70.0 | 1.76.0 | 1.81.0 |
8478
| TBB | tbb2018 (update 6)| tbb2018 (update 6)| tbb2019 (update 6)| tbb2020.3 |
8579
| HDF5 | 1.10.0 (patch 1)| 1.10.0 (patch 1)| 1.10.0 (patch 1)| 1.10.0 (patch 1) |
86-
| OpenEXR | 2.3.0| 2.3.0| 2.5.2| 3.1.11 |
80+
| OpenEXR | 2.3.0| 2.3.0| 2.5.2| 3.3.1 |
8781
| Alembic | 1.7.10| 1.7.10| 1.7.10| 1.8.5 |
8882
| MaterialX | 1.38.0| 1.38.0| 1.38.4| 1.38.8 |
8983
| OpenSubDiv | 3.4.3| 3.4.3| 3.5.0| 3.5.1 |
9084

9185
> :warning: Make sure that you don't have an older USD locations in your ```PATH``` and ```PYTHONPATH``` environment settings. ```PATH``` and ```PYTHONPATH``` are automatically adjusted inside the project to point to the correct USD location. See ```cmake/usd.cmake```.
9286
93-
#### 3. Universal Front End (UFE)
87+
#### 3. Internal shared libraries
88+
89+
To build the 3ds Max USD component, you will need to use those headers and libraries included in the `devkit`.
9490

91+
##### Universal Front End (UFE)
9592
The Universal Front End (UFE) is a DCC-agnostic component that allows the 3ds Max USD component to browse and edit data in multiple data models. This allows 3ds Max to edit pipeline data such as USD, using UDSUFE. UFE is developed as a separate binary component, and therefore versioned separately from 3ds Max.
9693

97-
The UFE component v5.3.0 is being used.
94+
The UFE component v5.6.0 is being used.
9895
The UFE component was originally developed by the Autodesk Maya team.
9996
Reference documentation - https://help.autodesk.com/view/MAYADEV/2025/ENU/?guid=MAYA_API_REF_ufe_ref_index_html
10097

101-
To build the 3ds Max USD component, you will need to use the UFE/USDUFE headers and libraries included in the `devkit`.
98+
##### USD Layer Editor
99+
The USD Layer Editor is a component used to manage and edit USD Layers.
100+
101+
##### USD Shared Components
102+
The USD Shared Components is a set of shared component used to manage and edit USD properties.
103+
102104

103105
#### 4. Python Modules
104106

@@ -120,11 +122,18 @@ Once the 3ds Max USD plugin is installed, you will find the `MaterialX for 3ds M
120122

121123
#### 6. Other Dependencies
122124

123-
| Dependency | 3ds Max 2022 | 3ds Max 2023 | 3ds Max 2024 | 3ds Max 2025 | Link |
125+
> :warning: Make sure to use the specified versions of the dependencies. Otherwise, you might face execution issues or crashes.
126+
127+
| Dependency | 3ds Max 2022 | 3ds Max 2023 | 3ds Max 2024 | 3ds Max 2025 |Link |
124128
|:----------------:|:------------:|:------------:|:------------:|:------------:|:---------------------------------------------:|
129+
| pybind11 | 2.10.2 | 2.10.2 | 2.10.2 | 2.10.2 | https://github.com/pybind/pybind11 |
125130
| spdlog | 1.14.1 | 1.14.1 | 1.14.1 | 1.14.1 | https://github.com/gabime/spdlog |
126131
| gtest | 1.8.1 | 1.8.1 | 1.11.0 | 1.11.0 | https://github.com/google/googletest/releases |
127132

133+
##### pybind11
134+
135+
The project is only using the headers from this dependency. You can clone the git repository and locate the include folder (the include path is at the root of the repository).
136+
128137
##### spdlog
129138

130139
The project is only using the headers from this dependency. You can clone the git repository and locate the include folder (the include path is at the root of the repository).
@@ -172,9 +181,10 @@ Before starting to build the plugin, the component's dependencies location must
172181
The build script can be used by following these usage rules:
173182

174183
usage: build-solution.py [-h] [-b BUILD] [-v VERSION] [-w] [-r] [-d] [-p] [--maxsdk MAXSDK] [--qtinstall QTINSTALL]
175-
[--materialx MATERIALX] [--googletest GOOGLETEST] [--pyopengl PYOPENGL]
176-
[--maxusddevkit MAXUSDDEVKIT] [--spdlog SPDLOG] [--python PYTHON] [--pyside PYSIDE]
177-
[--shiboken SHIBOKEN] [--ufeinc UFEINC] [--ufelib UFELIB] [--usdufe USDUFE]
184+
[--pybind11inc PYBIND11INC] [--materialx MATERIALX] [--googletest GOOGLETEST]
185+
[--pyopengl PYOPENGL] [--maxusddevkit MAXUSDDEVKIT] [--spdlog SPDLOG] [--python PYTHON]
186+
[--pyside PYSIDE] [--shiboken SHIBOKEN] [--ufeinc UFEINC] [--ufelib UFELIB] [--usdufe USDUFE]
187+
[--usdlayereditor USDLAYEREDITOR] [--usdsharedcomponent USDSHAREDCOMPONENT]
178188
[--openusd OPENUSD] [--tbb TBB] [--boostinc BOOSTINC] [--boostlib BOOSTLIB]
179189
[{release,hybrid}] {2022,2023,2024,2025,2026}
180190

@@ -196,6 +206,8 @@ The build script can be used by following these usage rules:
196206
--maxsdk MAXSDK The path location for the 'MaxSDK' folder.
197207
--qtinstall QTINSTALL
198208
The Qt reference version from QtVsTools (aka 'Qt Installation').
209+
--pybind11inc PYBIND11INC
210+
The path location for the 'pybind11' include folder.
199211
--materialx MATERIALX
200212
The path location for the 3ds Max MaterialX material plugin folder.
201213
--googletest GOOGLETEST
@@ -217,6 +229,12 @@ The build script can be used by following these usage rules:
217229
if the 'maxusddevkit' option is provided.
218230
--usdufe USDUFE The path location for the 'UsdUfe' folder. If not provided, using the path from the 'devkit'
219231
if the 'maxusddevkit' option is provided.
232+
--usdlayerEditor USDLAYEREDITOR
233+
The path location for the 'UsdLayerEditor' folder. If not provided, using the path from the 'devkit'
234+
the 'maxusddevkit' option is provided.
235+
--usdsharedcomponent USDSHAREDCOMPONENT
236+
The path location for the 'usdSharedComponents' folder. If not provided, using the path from
237+
the 'devkit' if the 'maxusddevkit' option is provided.
220238
--openusd OPENUSD The path location for the 'OpenUSD' folder. If not provided, using the path from the 'devkit'
221239
if the 'maxusddevkit' option is provided.
222240
--tbb TBB The path location for the 'TBB' folder. If not provided, using the path from the 'OpenUSD' if
@@ -235,6 +253,7 @@ For example, if you have:
235253
- execute the Python script `copy_missing_DLLs_found_in_the_official_installation.py` found in the `c:\dev\3dsmax-usd-devkit-2025\Pixar_USD` folder to recreate a completed OpenUSD prebuilt library
236254
- installed the 3ds Max 2025 SDK, by default, to `C:\Program Files\Autodesk\3ds Max 2025 SDK`)
237255
- Qt v6.5.3 is installed in `C:\Qt\6.5.3\msvc2019_64`
256+
- pybind11 is cloned in `C:\dev\pybind11`
238257
- PyOpenGL is installed in `C:\Users\myusername\AppData\Roaming\Python\Python311\site-packages`
239258
- GoogleTest is installed in `c:\dev\googletest-distribution`
240259

@@ -245,6 +264,7 @@ You will have a command-line similar to the one below. Using the `devkit` reduce
245264
--maxusddevkit c:\dev\3dsmax-usd-devkit-2025 \
246265
--googletest c:\dev\googletest-distribution \
247266
--qtinstall c:\Qt\6.5.3\msvc2019_64 \
267+
--pybind11inc c:\dev\pybind11\include \
248268
--maxsdk "c:\Program Files\Autodesk\3ds Max 2025 SDK\maxsdk" \
249269
--materialx "c:\ProgramData\Autodesk\ApplicationPlugins\USD for 3ds Max 2025\Contents\MaterialX_plugin" \
250270
--pyopengl C:\Users\myusername\AppData\Roaming\Python\Python311\site-packages -p release 2025

0 commit comments

Comments
 (0)