Skip to content

Commit 2631ea8

Browse files
committed
Merge release v0.8.4
2 parents 7229566 + 4c391b0 commit 2631ea8

File tree

581 files changed

+20928
-7699
lines changed

Some content is hidden

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

581 files changed

+20928
-7699
lines changed

BUILDING.md

Lines changed: 43 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,17 @@ Advanced Build Configuration
1414

1515
## Building With CMake
1616

17-
Users may specify libraries to build USD against and other build options by
17+
Users may specify libraries to build USD against and other build options by
1818
passing arguments when running cmake. Documentation for these arguments
1919
are below.
2020

2121
Some examples:
2222

23-
#### On Linux
23+
#### On Linux
2424

2525
```bash
2626
cmake \
27-
-DTBB_ROOT_DIR=/path/to/tbb \
27+
-DTBB_ROOT_DIR=/path/to/tbb \
2828
-DOPENEXR_LOCATION=/path/to/openexr \
2929
-DOPENSUBDIV_ROOT_DIR=/path/to/opensubdiv \
3030
-DPTEX_LOCATION=/path/to/ptex \
@@ -42,7 +42,7 @@ The following will generate an Xcode project that can be used to build USD.
4242
```bash
4343
cmake \
4444
-G "Xcode" \
45-
-DTBB_ROOT_DIR=/path/to/tbb \
45+
-DTBB_ROOT_DIR=/path/to/tbb \
4646
-DOPENEXR_LOCATION=/path/to/openexr \
4747
-DOPENSUBDIV_ROOT_DIR=/path/to/opensubdiv \
4848
-DPTEX_LOCATION=/path/to/ptex \
@@ -55,7 +55,7 @@ cmake --build . --target install -- -j <NUM_CORES>
5555

5656
#### On Windows
5757

58-
The following will generate a Visual Studio 2015 solution that can be used to
58+
The following will generate a Visual Studio 2015 solution that can be used to
5959
build USD.
6060

6161
```cmd.exe
@@ -70,7 +70,7 @@ build USD.
7070
\path\to\USD\source
7171
7272
cmake --build . --target install -- /m:%NUMBER_OF_PROCESSORS%
73-
```
73+
```
7474

7575
## Optional Components
7676

@@ -80,20 +80,20 @@ removes the need for their dependencies when building USD.
8080

8181
##### Python
8282

83-
Python support in USD refers to:
83+
Python support in USD refers to:
8484
- [The USD Toolset](https://graphics.pixar.com/usd/docs/USD-Toolset.html)
8585
- [Third Party Plugins](https://graphics.pixar.com/usd/docs/USD-3rd-Party-Plugins.html)
8686
- Python language bindings for the USD C++ API
8787
- Unit tests using Python
8888

89-
Support for Python can optionally be disabled by specifying the cmake flag
89+
Support for Python can optionally be disabled by specifying the cmake flag
9090
```PXR_ENABLE_PYTHON_SUPPORT=FALSE```.
9191

9292
##### Documentation
9393

94-
Doxygen documentation can optionally be generated by specifying the cmake flag
94+
Doxygen documentation can optionally be generated by specifying the cmake flag
9595
```PXR_BUILD_DOCUMENTATION=TRUE```. The additional dependencies that must
96-
be supplied for enabling documentation generation are:
96+
be supplied for enabling documentation generation are:
9797

9898
| Dependency Name | Description | Version |
9999
| ------------------ |----------------------------------------------------------------------- | ------- |
@@ -105,7 +105,7 @@ be supplied for enabling documentation generation are:
105105

106106
This component contains Hydra, a high-performance graphics rendering engine.
107107

108-
Disable this component by specifying the cmake flag ```PXR_BUILD_IMAGING=FALSE``` when
108+
Disable this component by specifying the cmake flag ```PXR_BUILD_IMAGING=FALSE``` when
109109
invoking cmake. Disabling this component will also disable the [USD Imaging](#usd-imaging)
110110
component and any [Imaging Plugins](#imaging-plugins).
111111

@@ -140,7 +140,7 @@ Embree 2.16.1. The additional dependencies that must be supplied when invoking c
140140
## Third Party Plugins
141141

142142
USD provides several plugins for integration with third-party software packages,
143-
including Maya, Katana, Houdini, and Alembic. There is additional documentation on each plugin
143+
including Maya, Katana, Houdini, and Alembic. There is additional documentation on each plugin
144144
[here](http://openusd.org/docs/USD-3rd-Party-Plugins.html).
145145
These plugins are not built by default and must be enabled via the instructions below.
146146

@@ -167,7 +167,7 @@ For further information see the documentation on the Alembic plugin [here](http:
167167

168168
##### Maya Plugin
169169

170-
Enable the Maya plugin in the build by specifying the cmake flag ```PXR_BUILD_MAYA_PLUGIN=TRUE```
170+
Enable the Maya plugin in the build by specifying the cmake flag ```PXR_BUILD_MAYA_PLUGIN=TRUE```
171171
when invoking cmake. This plugin is compatible with Maya 2016. The additional dependencies that must be supplied when invoking cmake are:
172172

173173
| Dependency Name | Description | Version |
@@ -179,7 +179,7 @@ For further information see the documentation on the Maya plugin [here](http://o
179179

180180
##### Katana Plugin
181181

182-
Enable the Katana plugin in the build by specifying the cmake flag ```PXR_BUILD_KATANA_PLUGIN=TRUE```
182+
Enable the Katana plugin in the build by specifying the cmake flag ```PXR_BUILD_KATANA_PLUGIN=TRUE```
183183
when invoking cmake. This plugin is compatible with Katana 2.5v1. The additional dependencies that must be supplied when invoking cmake are:
184184

185185
| Dependency Name | Description | Version |
@@ -190,7 +190,7 @@ For further information see our additional documentation on the Katana plugins [
190190

191191
##### Houdini Plugin
192192

193-
Enable the Houdini plugin in the build by specifying the cmake flag ```PXR_BUILD_HOUDINI_PLUGIN=TRUE```
193+
Enable the Houdini plugin in the build by specifying the cmake flag ```PXR_BUILD_HOUDINI_PLUGIN=TRUE```
194194
when invoking cmake. This plugin is compatible with Houdini 16.0. The additional dependencies that must be supplied when invoking cmake are:
195195

196196
| Dependency Name | Description | Version |
@@ -201,7 +201,7 @@ For further information see our additional documentation on the Houdini plugins
201201

202202
## Tests
203203

204-
Disable unit testing and prevent tests from being built by specifying the cmake flag ```PXR_BUILD_TESTS=FALSE```
204+
Disable unit testing and prevent tests from being built by specifying the cmake flag ```PXR_BUILD_TESTS=FALSE```
205205
when invoking cmake.
206206

207207
## Other Build Options
@@ -210,26 +210,37 @@ when invoking cmake.
210210

211211
Each library in the USD core generally has an associated file named 'plugInfo.json' that contains metadata about that library,
212212
such as the schema types provided by that library. These files are consumed by USD's internal plugin system to lazily load
213-
libraries when needed.
213+
libraries when needed.
214214

215215
The plugin system requires knowledge of where these metadata files are located. The cmake build will ensure this is set up
216216
properly based on the install location of the build. However, if you plan to relocate these files to a new location after
217217
the build, you must inform the build by setting the cmake variable ```PXR_INSTALL_LOCATION``` to the intended final
218218
directory where these files will be located. This variable may be a ':'-delimited list of paths.
219219

220+
Another way USD is locating plugins is the ```PXR_PLUGINPATH_NAME``` environment variable. This variable
221+
may be a list of paths. If you do not want your USD build to use this default variable name, you can override the name
222+
of the environment variable using the following CMake option:
223+
224+
```
225+
-DPXR_OVERRIDE_PLUGINPATH_NAME=CUSTOM_USD_PLUGINPATHS
226+
```
227+
228+
By doing this, USD will check the ```CUSTOM_USD_PLUGINPATHS``` environment variable for paths, instead of the default
229+
```PXR_PLUGINPATH_NAME``` one.
230+
220231
##### Shared library prefix
221232

222233
By default shared libraries will have the prefix 'lib'. This means, for a given
223-
component such as [usdGeom](pxr/usd/lib/usdGeom), the build will generate a corresponding
224-
libusdGeom object (libusdGeom.so on Linux, libusdGeom.dll on Windows
225-
and libusdGeom.dylib on Mac). You can change the prefix (or remove it) through
234+
component such as [usdGeom](pxr/usd/lib/usdGeom), the build will generate a corresponding
235+
libusdGeom object (libusdGeom.so on Linux, libusdGeom.dll on Windows
236+
and libusdGeom.dylib on Mac). You can change the prefix (or remove it) through
226237
```PXR_LIB_PREFIX```. For example,
227238

228239
```
229240
-DPXR_LIB_PREFIX=pxr
230241
```
231242

232-
Will generate pxrusdGeom.so on Linux, pxrusdGeom.dll on Windows and
243+
Will generate pxrusdGeom.so on Linux, pxrusdGeom.dll on Windows and
233244
pxrusdGeom.dylib on Mac for the usdGeom component.
234245

235246
> Note: This prefix does not apply to shared objects used for Python bindings.
@@ -247,37 +258,37 @@ flags:
247258
| PXR_SET_INTERNAL_NAMESPACE | The internal namespace identifier | ```pxrInternal_v_x_y``` (for version x.y.z) |
248259
| PXR_ENABLE_NAMESPACES | Enable namespaces | ```OFF``` |
249260

250-
When enabled, there are a set of macros provided in a generated header,
261+
When enabled, there are a set of macros provided in a generated header,
251262
pxr/pxr.h, which facilitates using namespaces:
252263

253-
| Macro Name | Description |
254-
| ------------------------------ |-----------------------------------------|
264+
| Macro Name | Description |
265+
| ------------------------------ |-----------------------------------------|
255266
| PXR_NAMESPACE_OPEN_SCOPE | Opens the namespace scope. |
256267
| PXR_NAMESPACE_CLOSE_SCOPE | Closes the namespace. |
257268
| PXR_NS | Explicit qualification on items, e.g. ```PXR_NS::TfToken foo = ...```|
258269
| PXR_NAMESPACE_USING_DIRECTIVE | Enacts a using-directive, e.g. ```using namespace PXR_NS;``` |
259270

260271
##### ASCII Parser Editing/Validation
261272

262-
There is an ASCII parser for the USD file format, which can be found in
263-
[sdf](pxr/usd/lib/sdf/). Most users will not have a need to edit the parser, but
273+
There is an ASCII parser for the USD file format, which can be found in
274+
[sdf](pxr/usd/lib/sdf/). Most users will not have a need to edit the parser, but
264275
for the adventurous ones, there are a couple additional requirements.
265276

266-
If you choose to edit the ASCII parsers, make sure
267-
```PXR_VALIDATE_GENERATED_CODE``` is set to ```TRUE```. This flag enables tests
268-
that check the generated code in [sdf](pxr/usd/lib/sdf) and
277+
If you choose to edit the ASCII parsers, make sure
278+
```PXR_VALIDATE_GENERATED_CODE``` is set to ```TRUE```. This flag enables tests
279+
that check the generated code in [sdf](pxr/usd/lib/sdf) and
269280
[gf](pxr/base/lib/gf).
270281

271282
| Dependency Name | Description | Version |
272283
| ------------------------------ |----------------------------------------------------------------- | ------- |
273284
| FLEX_EXECUTABLE | Path to [flex](http://flex.sourceforge.net/) executable | 2.5.35 |
274-
| BISON_EXECUTABLE | Path to [bison](https://www.gnu.org/software/bison/) executable | 2.4.1 |
285+
| BISON_EXECUTABLE | Path to [bison](https://www.gnu.org/software/bison/) executable | 2.4.1 |
275286

276287
##### USD Schema Generation
277288

278-
USD generates some code through a process called [schema
289+
USD generates some code through a process called [schema
279290
generation]. This process requires the following python modules be installed
280-
and available on the syspath. You can learn more about Schemas and why you
291+
and available on the syspath. You can learn more about Schemas and why you
281292
might want to generate them
282293
[here](http://openusd.org//docs/Generating-New-Schema-Classes.html).
283294

CHANGELOG.md

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,93 @@
11
# Change Log
22

3+
## [0.8.4] - 2018-03-05
4+
5+
### Added
6+
- The PXR_PLUGINPATH_NAME environment variable name may be changed by
7+
specifying `PXR_OVERRIDE_PLUGINPATH_NAME=<name>` when running cmake.
8+
- Example sendmail plugin for usdview, located at
9+
extras/usd/examples/usdviewPlugins/sendMail.py
10+
- ArDefaultResolverContext, a context object for the ArDefaultResolver asset
11+
resolution implementation that allows additional search paths to be used
12+
during asset resolution.
13+
- Users can now query the UsdNotice::ObjectsChanged notice for the changed
14+
scene description fields that affected the reported objects.
15+
- UsdAPISchemaBase base class for all API schemas.
16+
- All UsdGeomBoundable schemas in usdGeom now have functions for computing
17+
extents. These functions are also used when calling the general
18+
UsdGeomBoundable::ComputeExtentFromPlugins method.
19+
- UsdLuxCylinderLight schema.
20+
- Significant additions to edge and point selection and highlighting
21+
capabilities in Hydra.
22+
- Initial support for UsdSkel bones in usdImaging.
23+
- Initial support for exporting joints and skin clusters using the UsdSkel
24+
schema in the Maya plugin.
25+
- Documentation for third party plugin code is now included in the
26+
doxygen build.
27+
28+
### Changed
29+
- build_usd.py no longer checks for pyside-uic or boost::python if Python
30+
support is disabled, and no longer builds OpenImageIO's Python bindings.
31+
- Updated moduleDeps.cpp files to only register direct library dependencies.
32+
This makes it easier for users to generate their own file for custom schemas.
33+
- ArDefaultResolver now allows search paths like "Dir/File.usd" to be anchored
34+
to other paths via AnchorRelativePath. During composition, these asset paths
35+
will be resolved relative to the layer where they were authored before
36+
falling back to the previous search path behavior.
37+
- Updates to VtArray and .usdc code in preparation for zero-copy functionality.
38+
- Inherit and specializes arcs to non-existent prims are no longer considered
39+
composition errors.
40+
- Apply method on API schemas have been moved to UsdAPISchemaBase and now
41+
require a UsdPrim. Also improved documentation.
42+
- Property queries on UsdPrim now accept a predicate for filtering results.
43+
- UsdPrim::HasAPI now accepts an instance name argument to query if a prim has
44+
a particular instance of a multiple-apply API schema has been applied.
45+
- Adding or removing an inert prim spec no longer causes affected prims to
46+
be resynced. These prims are now reported as "changed info only" in the
47+
corresponding UsdNotice::ObjectsChanged notice.
48+
- UsdNotice::ObjectsChanged::GetResyncedPaths and GetChangedInfoOnlyPaths now
49+
return a custom range object instead of a SdfPathVector.
50+
- Performance optimizations for querying properties on UsdPrim.
51+
- Replaced UsdCollectionAPI::AddPrim/RemovePrim with IncludePath/ExcludePath.
52+
- UsdGeomBoundable::ComputeExtentFromPlugins now accepts an optional
53+
transform matrix, which may be used to provide more accurate bounds.
54+
- UsdGeomBBoxCache now computes extents for all UsdGeomBoundable schemas.
55+
- Performance optimizations in UsdShadeMaterialBindingAPI.
56+
- Numerous changes and fixes to UsdSkel schemas.
57+
- Significantly improved curve rendering in Hydra.
58+
- Many improvements towards the goal of getting modern UsdShade materials
59+
through Hydra to various kinds of backends.
60+
- Performance improvements to hydra gather phase via multi-threading and other
61+
optimizations.
62+
- Changed complexity options in usdview to prevent users from inadvertently
63+
bumping the complexity value too high and hanging the application.
64+
- Several tweaks and improvements to usdview UI.
65+
- Refactored Maya/Hydra batch renderer to improve performance for imaging USD
66+
proxy shape nodes.
67+
68+
### Removed
69+
- UsdShadeLook schema. This has been replaced by UsdShadeMaterial.
70+
Material bindings authored using the "look:binding" relationship are no
71+
longer respected.
72+
73+
### Fixed
74+
- Various typo and compiler warning fixes throughout the codebase.
75+
- Fixed bug where build_usd.py would not use the CMake generator specified at
76+
the command line.
77+
- Fixed crash in Apply method on API schemas.
78+
- Fixed several bugs in UsdShadeMaterialBindingAPI::ComputeBoundMaterial.
79+
- Changing the population mask for a UsdStage now correctly releases resources
80+
used by objects that have been excluded from the stage.
81+
- Fixed quadrangulation bug in Hydra with handling topology with degenerate or
82+
hole faces.
83+
- Fixed patch param refinement for Loop meshes.
84+
- Several fixes to the nascent Hydra lights pipeline.
85+
- Fixed bug in the usdExport AlembicChaser in the Maya plugin where primvars
86+
that match the primvarprefix do not get exported. They are now exported with
87+
constant interpolation, and using _AbcGeomScope is no longer required.
88+
- Fixed bug in Katana plugin where infinite recursion would occur in pxrUsdIn
89+
when sources were outside the scope of the point instancer. (Issue #286)
90+
391
## [0.8.3] - 2018-02-05
492

593
### Added

CMakeLists.txt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,12 +120,13 @@ if (${PXR_BUILD_DOCUMENTATION})
120120

121121
set(DOCS_DIR "${CMAKE_BINARY_DIR}")
122122
set(GEN_SCRIPT "${PROJECT_SOURCE_DIR}/cmake/macros/generateDocs.py")
123-
set(SOURCE_DIR "${CMAKE_SOURCE_DIR}/pxr")
123+
set(PXR_SOURCE_DIR "${CMAKE_SOURCE_DIR}/pxr")
124+
set(THIRD_PARTY_SOURCE_DIR "${CMAKE_SOURCE_DIR}/third_party")
124125

125126
add_custom_target(
126127
documentation
127128
ALL
128-
COMMAND ${PYTHON_EXECUTABLE} ${GEN_SCRIPT} ${SOURCE_DIR} ${CMAKE_BINARY_DIR} ${DOCS_DIR} ${DOXYGEN_EXECUTABLE} ${DOT_EXECUTABLE}
129+
COMMAND ${PYTHON_EXECUTABLE} ${GEN_SCRIPT} ${PXR_SOURCE_DIR} ${THIRD_PARTY_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${DOCS_DIR} ${DOXYGEN_EXECUTABLE} ${DOT_EXECUTABLE}
129130
DEPENDS ${CMAKE_BINARY_DIR}/include/pxr/pxr.h
130131
)
131132

build_scripts/build_usd.py

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -190,11 +190,14 @@ def RunCMake(context, force, extraArgs = None):
190190
if msvcCompilerAndVersion:
191191
_, version = msvcCompilerAndVersion
192192
if version >= MSVC_2017_COMPILER_VERSION:
193-
generator = '-G "Visual Studio 15 2017 Win64"'
193+
generator = "Visual Studio 15 2017 Win64"
194194
else:
195-
generator = '-G "Visual Studio 14 2015 Win64"'
195+
generator = "Visual Studio 14 2015 Win64"
196+
197+
if generator is not None:
198+
generator = '-G "{gen}"'.format(gen=generator)
196199

197-
# On MacOS, enable the use of @rpath for relocatable builds.
200+
# On MacOS, enable the use of @rpath for relocatable builds.
198201
osx_rpath = None
199202
if MacOS():
200203
osx_rpath = "-DCMAKE_MACOSX_RPATH=ON"
@@ -400,12 +403,14 @@ def InstallBoost(context, force):
400403
'--with-date_time',
401404
'--with-filesystem',
402405
'--with-program_options',
403-
'--with-python',
404406
'--with-regex',
405407
'--with-system',
406408
'--with-thread'
407409
]
408410

411+
if context.buildPython:
412+
b2_settings.append("--with-python")
413+
409414
if force:
410415
b2_settings.append("-a")
411416

@@ -649,6 +654,7 @@ def InstallOpenImageIO(context, force):
649654
with CurrentWorkingDirectory(DownloadURL(OIIO_URL, context, force)):
650655
extraArgs = ['-DOIIO_BUILD_TOOLS=OFF',
651656
'-DOIIO_BUILD_TESTS=OFF',
657+
'-DUSE_PYTHON=OFF',
652658
'-DSTOP_ON_WARNING=OFF']
653659

654660
# OIIO's FindOpenEXR module circumvents CMake's normal library
@@ -1234,7 +1240,7 @@ def ForceBuildDependency(self, dep):
12341240
"PATH")
12351241
sys.exit(1)
12361242

1237-
if context.buildUsdImaging:
1243+
if PYSIDE in requiredDependencies:
12381244
# The USD build will skip building usdview if pyside-uic or pyside2-uic is
12391245
# not found, so check for it here to avoid confusing users. This list of
12401246
# PySide executable names comes from cmake/modules/FindPySide.cmake
@@ -1263,6 +1269,7 @@ def ForceBuildDependency(self, dep):
12631269
3rd-party source directory {srcDir}
12641270
3rd-party install directory {instDir}
12651271
Build directory {buildDir}
1272+
CMake generator {cmakeGenerator}
12661273
12671274
Building {buildType}
12681275
Imaging {buildImaging}
@@ -1284,6 +1291,8 @@ def ForceBuildDependency(self, dep):
12841291
srcDir=context.srcDir,
12851292
buildDir=context.buildDir,
12861293
instDir=context.instDir,
1294+
cmakeGenerator=("Default" if not context.cmakeGenerator
1295+
else context.cmakeGenerator),
12871296
dependencies=("None" if not dependenciesToBuild else
12881297
", ".join([d.name for d in dependenciesToBuild])),
12891298
buildType=("Shared libraries" if context.buildShared

0 commit comments

Comments
 (0)