Skip to content

Commit 97cea8a

Browse files
authored
Merge pull request #34 from Autodesk/kheloua/v0.15.0
v0.15.0 release
2 parents ce6fc5a + 5207b9d commit 97cea8a

61 files changed

Lines changed: 951 additions & 1886 deletions

File tree

Some content is hidden

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

.gitignore

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,4 @@ SDK/
3131
src/Tests/Integration/SystemTestGup/
3232
*.TMP
3333
devkit/
34-
conan*.props
35-
graph_info.json
3634
tools/

doc/changelog.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,53 @@
11
## Changelog
22

33

4+
### v0.15.0
5+
6+
#### What's New:
7+
- New public release - version 0.15.0
8+
9+
### v0.14.5
10+
11+
#### Fixes:
12+
- Prevent accidental prim reparenting during selection from the prim picker dialog.
13+
14+
### v0.14.4
15+
16+
#### What's New:
17+
- USD Explorer and USD Layer Editor now retain their docked or floating position and size when reopening a scene, with automatic reset to a visible default location if previously placed off-screen.
18+
19+
#### Fixes:
20+
- Fixed a situation in which the USD Explorer could open over the file picker when creating a stage from a file.
21+
- Removed the "Both" animation export option to prevent conflicting spline and time sample authoring, aligning with USD behaviour where time samples take priority and splines are ignored.
22+
- Fixed a bug that allowed the Prim Picker to edit prims name.
23+
- Improved rename performance and reliability.
24+
25+
### v0.14.3
26+
27+
#### What's New:
28+
- USD Explorer and USD Layer Editor now retain their docked or floating position and size when reopening a scene, with automatic reset to a visible default location if previously placed off-screen.
29+
30+
#### Fixes:
31+
- Removed the "Both" animation export option to prevent conflicting spline and time sample authoring, aligning with USD behaviour where time samples take priority and splines are ignored.
32+
- Improved rename performance and reliability.
33+
34+
### v0.14.2
35+
36+
#### What's New:
37+
- Compatibility release for 3ds Max Beta A519-71.2 release.
38+
- Resolved conversion issues between OpenPBR and USD Preview Surface on export.
39+
40+
#### Fixes:
41+
- Exporting light now properly respects the On/Off state.
42+
- Fixed a potential Gimbal Lock issue when exporting data to USD with Split transform feature enabled.
43+
- Fixed an issue where camera with animated targets wouldn't get animated when exporting with Curves.
44+
- Fixed an issue where 3ds Max would crash when exporting biped with Animation curves.
45+
46+
### v0.14.1
47+
48+
#### Fixes:
49+
- Fixed an issue where animated transforms didn't match the original when exporting with Y-up and animation curves.
50+
451
### v0.14.0
552

653
#### What's New:

src/ApplicationPlugins/usd-component/Contents/Help/en-US/index.html

Lines changed: 89 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,95 @@ <h4 class="pt-4" id="get-in-touch">Get in touch</h4>
9090
this partnership.</p>
9191

9292
<h4 class="pt-4">Release notes</h4>
93-
<h5 data-current-version="0.14.0">v0.14.0<small><span class="badge badge-danger text-uppercase rounded-0"style="vertical-align: text-top">New</span></small></h5>
93+
<h5 data-current-version="0.15.0">v0.15.0<small><span class="badge badge-danger text-uppercase rounded-0"style="vertical-align: text-top">New</span></small></h5>
94+
What's New:
95+
<ul>
96+
<li>
97+
New public release - version 0.15.0
98+
</li>
99+
</ul>
100+
<h5>v0.14.5</h5>
101+
Fixes:
102+
<ul>
103+
<li>
104+
Prevent accidental prim reparenting during selection from the prim picker dialog.
105+
</li>
106+
</ul>
107+
<h5>v0.14.4</h5>
108+
What's New:
109+
<ul>
110+
<li>
111+
USD Explorer and USD Layer Editor now retain their docked or floating position and size when reopening a scene, with automatic reset to a visible default location if previously placed off-screen.
112+
</li>
113+
</ul>
114+
Fixes:
115+
<ul>
116+
<li>
117+
Fixed a situation in which the USD Explorer could open over the file picker when creating a stage from a file.
118+
</li>
119+
<li>
120+
Removed the “Both” animation export option to prevent conflicting spline and time sample authoring, aligning with USD behaviour where time samples take priority and splines are ignored.
121+
</li>
122+
<li>
123+
Fixed a bug that allowed the Prim Picker to edit prims name.
124+
</li>
125+
<li>
126+
Improved rename performance and reliability
127+
</li>
128+
</ul>
129+
130+
<h5>v0.14.3</h5>
131+
What's New:
132+
<ul>
133+
<li>
134+
USD Explorer and USD Layer Editor now retain their docked or floating position and size when reopening a scene, with automatic reset to a visible default location if previously placed off-screen.
135+
</li>
136+
</ul>
137+
Fixes:
138+
<ul>
139+
<li>
140+
Removed the "Both" animation export option to prevent conflicting spline and time sample authoring, aligning with USD behaviour where time samples take priority and splines are ignored.
141+
</li>
142+
<li>
143+
Improved rename performance and reliability
144+
</li>
145+
</ul>
146+
147+
<h5>v0.14.2</h5>
148+
What's New:
149+
<ul>
150+
<li>
151+
Compatibility release for 3ds Max Beta A519-71.2 release.
152+
</li>
153+
<li>
154+
Resolved conversion issues between OpenPBR and USD Preview Surface on export.
155+
</li>
156+
</ul>
157+
Fixes:
158+
<ul>
159+
<li>
160+
Exporting light now properly respect the On/Off state.
161+
</li>
162+
<li>
163+
Fixed a potential Gimbal Lock issue when exporting data to USD with Split transform feature enabled.
164+
</li>
165+
<li>
166+
Fixed an issue where camera with animated targets wouldn't get animated when exporting with Curves.
167+
</li>
168+
<li>
169+
Fixed an issue where 3ds Max would crash when exporting biped with Animation curves.
170+
</li>
171+
</ul>
172+
173+
<h5>v0.14.1</h5>
174+
Fixes:
175+
<ul>
176+
<li>
177+
Fixed an issue where animated transforms didn't match match the original when exporting with Y-up and animation curves.
178+
</li>
179+
</ul>
180+
181+
<h5>v0.14.0</h5>
94182
What's New:
95183
<ul>
96184
<li>

src/ApplicationPlugins/usd-component/Contents/bin/UsdToolWrapper.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -202,10 +202,6 @@ def validateUsdViewRequirements():
202202
if os.path.exists(cmd + '.exe'):
203203
exePath = cmd + '.exe'
204204

205-
# Usd checker has changed to require a new arg to enable the new validation framework
206-
if cmd.lower() == "usdchecker":
207-
newArgs.append("--useNewValidationFramework")
208-
209205
# If an .exe version of the tool exists (newer OpenUSD releases converted some python tools to native exes)
210206
if exePath:
211207
import subprocess

src/ApplicationPlugins/usd-component/Contents/bin/python/ar_project_tokens/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
try:
33
from pxr import Ar
44
import AdskAssetResolver # type: ignore
5+
import AssetResolverPreferences
56
except ImportError:
67
# the module was not found
78
# define a placeholder to support the case in a clean way
@@ -11,7 +12,7 @@
1112
def register_ar():
1213
if AdskAssetResolver:
1314
# fetch all project dirs (aka from pathConfig.getProjectSubDirectoryCount/getProjectSubDirectory)
14-
AdskAssetResolver.AssetResolverContextDataRegistry.RegisterContextData("3ds Max Project Tokens") \
15+
AdskAssetResolver.AssetResolverContextDataRegistry.RegisterContextData(AssetResolverPreferences.PROJECT_TOKENS_DATA_SET_NAME) \
1516
.AddStaticToken("project", mxs.pathConfig.getCurrentProjectFolder()) \
1617
.AddStaticToken("animations", mxs.getdir(mxs.Name('animations'))) \
1718
.AddStaticToken("archives", mxs.getdir(mxs.Name('archives'))) \

src/ApplicationPlugins/usd-component/Contents/scripts/materials/data_files/default.material_conversion

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -450,9 +450,9 @@
450450
"use_map_parameter": "base_metalness_map_on"
451451
},
452452
"roughness": {
453-
"value_parameter": "base_diffuse_roughness",
454-
"map_parameter": "base_diffuse_roughness_map",
455-
"use_map_parameter": "base_diffuse_roughness_map_on"
453+
"value_parameter": "specular_roughness",
454+
"map_parameter": "specular_roughness_map",
455+
"use_map_parameter": "specular_roughness_map_on"
456456
},
457457
"specularColor": {
458458
"value_parameter": "specular_color",
@@ -462,6 +462,10 @@
462462
"opacity": {
463463
"map_parameter": "geometry_opacity_map",
464464
"use_map_parameter": "geometry_opacity_map_on"
465+
},
466+
"normal": {
467+
"map_parameter": "bump_map",
468+
"use_map_parameter": "bump_map_on"
465469
}
466470
}
467471
}

src/ApplicationPlugins/usd-component/Contents/scripts/materials/usd_material_writer.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -464,7 +464,9 @@ def write_usd_material(from_mat, conversion_mapping, stage, shader, shader_path,
464464
RT.UsdExporter.Log(ERROR, "Texture ({0}) using a channel not mapped to a primvar.".format(in_value))
465465
continue
466466

467-
texture_graph, resolved_texture, uv_texture, is_new = output_usd_texture(in_value, stage, mat_path.GetParentPath(), material_export_options, usd_shade_to_max_map, (texture_src_type == "normalmap"))
467+
# Detect normal maps by source type or by Normal_Bump input wrapper
468+
is_normal_map = (texture_src_type == "normalmap") or (in_type in normal_bumps())
469+
texture_graph, resolved_texture, uv_texture, is_new = output_usd_texture(in_value, stage, mat_path.GetParentPath(), material_export_options, usd_shade_to_max_map, is_normal_map)
468470

469471
if not texture_graph:
470472
# output_usd_texture could return None

src/ApplicationPlugins/usd-component/PackageContents.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
AutodeskProduct="3ds Max"
66
Name="USD for 3ds Max"
77
Description="Autodesk USD for 3ds Max"
8-
AppVersion="0.14.0"
9-
FriendlyVersion="0.14.0"
8+
AppVersion="0.15.0"
9+
FriendlyVersion="0.15.0"
1010
HelpFile="./Contents/Help/en-US/index.html"
1111
SupportedLocales="Enu"
1212
AppNameSpace="appstore.exchange.autodesk.com"

src/MaxUsd/Builders/USDSceneBuilder.cpp

Lines changed: 33 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1242,12 +1242,10 @@ MaxUsd::PrimDefVectorPtr USDSceneBuilder::ProcessNode(
12421242

12431243
auto animType = buildOptions.GetAnimationType();
12441244
exportCurves
1245-
= (animType == MaxUsd::USDSceneBuilderOptions::AnimationType::Curves
1246-
|| animType == MaxUsd::USDSceneBuilderOptions::AnimationType::Both)
1245+
= animType == MaxUsd::USDSceneBuilderOptions::AnimationType::Curves
12471246
&& !nodeTarget && isValidController;
12481247
exportTimeSamples
1249-
= (animType == MaxUsd::USDSceneBuilderOptions::AnimationType::TimeSamples
1250-
|| animType == MaxUsd::USDSceneBuilderOptions::AnimationType::Both)
1248+
= animType == MaxUsd::USDSceneBuilderOptions::AnimationType::TimeSamples
12511249
|| nodeTarget || !isValidController;
12521250

12531251
if (exportCurves) {
@@ -1298,21 +1296,39 @@ MaxUsd::PrimDefVectorPtr USDSceneBuilder::ProcessNode(
12981296
}
12991297
};
13001298

1301-
const ComponentDef translationComponents[] = {
1302-
{ pxr::UsdGeomXformOp::TypeTranslateX, &Control::GetXController },
1303-
{ pxr::UsdGeomXformOp::TypeTranslateY, &Control::GetYController },
1304-
{ pxr::UsdGeomXformOp::TypeTranslateZ, &Control::GetZController }
1305-
};
1306-
// The rotation order needs to be inverted in order to
1307-
// properly work in the transform stack.
1308-
const ComponentDef rotationComponents[]
1309-
= { { pxr::UsdGeomXformOp::TypeRotateZ, &Control::GetZController },
1299+
// To convert from Z up to Y up, it is required to swap the Y and Z axis
1300+
// in the translation and rotate by 90 degrees along the X axis. This
1301+
// set of operation can be achieved by swaping the controllers below.
1302+
std::vector<ComponentDef> translationComponents;
1303+
std::vector<ComponentDef> rotationComponents;
1304+
if (buildOptions.GetUpAxis() == USDSceneBuilderOptions::UpAxis::Y) {
1305+
translationComponents = { { pxr::UsdGeomXformOp::TypeTranslateX,
1306+
&Control::GetXController },
1307+
{ pxr::UsdGeomXformOp::TypeTranslateY,
1308+
&Control::GetZController },
1309+
{ pxr::UsdGeomXformOp::TypeTranslateZ,
1310+
&Control::GetYController } };
1311+
rotationComponents = {
1312+
{ pxr::UsdGeomXformOp::TypeRotateZ, &Control::GetYController },
1313+
{ pxr::UsdGeomXformOp::TypeRotateY, &Control::GetZController },
1314+
{ pxr::UsdGeomXformOp::TypeRotateX, &Control::GetXController }
1315+
};
1316+
} else {
1317+
translationComponents = { { pxr::UsdGeomXformOp::TypeTranslateX,
1318+
&Control::GetXController },
1319+
{ pxr::UsdGeomXformOp::TypeTranslateY,
1320+
&Control::GetYController },
1321+
{ pxr::UsdGeomXformOp::TypeTranslateZ,
1322+
&Control::GetZController } };
1323+
rotationComponents = {
1324+
{ pxr::UsdGeomXformOp::TypeRotateZ, &Control::GetZController },
13101325
{ pxr::UsdGeomXformOp::TypeRotateY, &Control::GetYController },
1311-
{ pxr::UsdGeomXformOp::TypeRotateX,
1312-
&Control::GetXController } };
1326+
{ pxr::UsdGeomXformOp::TypeRotateX, &Control::GetXController }
1327+
};
1328+
}
13131329

1314-
addComponentSplines(posCtrl, translationComponents);
1315-
addComponentSplines(rotCtrl, rotationComponents, [](float rad) {
1330+
addComponentSplines(posCtrl, translationComponents.data());
1331+
addComponentSplines(rotCtrl, rotationComponents.data(), [](float rad) {
13161332
return rad * (180.0f / static_cast<float>(M_PI));
13171333
});
13181334

src/MaxUsd/Builders/USDSceneBuilderOptions.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,8 +153,7 @@ class USDSceneBuilderOptions : public SceneBuilderOptions
153153
enum class MaxUSDAPI AnimationType
154154
{
155155
TimeSamples,
156-
Curves,
157-
Both
156+
Curves
158157
};
159158

160159
static MaxUSDAPI const double MIN_SAMPLES_PER_FRAME;

0 commit comments

Comments
 (0)