Skip to content

Commit

Permalink
Merge release v0.8.1
Browse files Browse the repository at this point in the history
  • Loading branch information
pixar-oss committed Oct 3, 2017
2 parents 65320d2 + a832fe2 commit 4967755
Show file tree
Hide file tree
Showing 760 changed files with 32,447 additions and 16,260 deletions.
15 changes: 13 additions & 2 deletions BUILDING.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,17 @@ USD contains several optional components that are enabled by default
but may be disabled when invoking cmake. Disabling these components
removes the need for their dependencies when building USD.

##### Python

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

Support for Python can optionally be disabled by specifying the cmake flag
```PXR_ENABLE_PYTHON_SUPPORT=FALSE```.

##### Documentation

Doxygen documentation can optionally be generated by specifying the cmake flag
Expand Down Expand Up @@ -169,11 +180,11 @@ For further information see the documentation on the Maya plugin [here](http://o
##### Katana Plugin

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

| Dependency Name | Description | Version |
| -------------- | ----------------------------------- | ------- |
| KATANA_API_LOCATION | The root path to a Katana SDK install.| 2.0v5 |
| KATANA_API_LOCATION | The root path to a Katana SDK install.| 2.5v1 |

For further information see our additional documentation on the Katana plugins [here](http://openusd.org/docs/Katana-USD-Plugins.html).

Expand Down
116 changes: 116 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,121 @@
# Change Log

## [0.8.1] - 2017-10-02

### Added
- "append" and "prepend" operations for SdfListOp-valued fields.
Scene description layers that contain these new operations will not be
readable by earlier USD releases.
- `--validate` argument to sdfdump for checking file validity.
- Support for sub-root references and payloads.
- Ability to specify amount of data to prefetch when reading a .usdc
file via the `USDC_MMAP_PREFETCH_KB` environment variable.
- Debugging output that shows memory mapping information for .usdc files.
This can be enabled via the `USDC_DUMP_PAGE_MAPS` environment variable.
- UsdGeomMotionAPI schema.
- UsdGeomSubset schema for representing a subset of a geometric prim.
- Hydra GL support for displacement shaders
- Initial experimental support for PySide2 in usdview. By default, the
build will search for PySide, then PySide2. Alternatively, users may specify
`PYSIDE_USE_PYSIDE2=TRUE` to CMake to force the use of PySide2.
- Ability to view connections and relationship targets in usdview.
- Support for camera clipping range in Alembic plugin.
- Support for array attributes with "RfM Shaders" shading mode in Maya exporter.
- Support for angularVelocities attribute on point instancers in Katana plugin.
- Filtered view and improved selection to Tree View panel in Houdini plugin.
- Support for prototype offsets in point instancer exports in Houdini plugin.

### Changed
- Made Python dependency optional. Python support is enabled by default but
may be disabled by specifying `PXR_ENABLE_PYTHON_SUPPORT=FALSE` to CMake
or `--no-python` to build_usd.py.
- build_usd.py now requires that users install PyOpenGL manually. (Issue #264)
- Replaced addedOrExplicitItems attribute on Sdf.*ListOp in Python with
GetAddedOrExplicitItems method.
- Renamed Append... methods on composition arc APIs (e.g. UsdReferences,
UsdInherits) to Add... and added a position argument to support new
"append" and "prepend" operations.

Calling these functions with the default UsdListPositionTempDefault argument
will author "add" operations, maintaining the previous behavior. We anticipate
removing UsdListPositionTempDefault and replacing it with UsdListPositionFront
so that "prepend" operations will be authored by default in 0.8.2. Users may
enable this behavior now by setting the `USD_AUTHOR_OLD_STYLE_ADD` environment
variable to false.

- UsdStage now issues warnings for invalid layers it encounters instead of
errors, which cause exceptions in Python.
- Code generation templates and schema.usda files used by usdGenSchema are
now installed as part of the build. Schemas can now use asset paths like
"usdGeom/schema.usda" or "usdShade/schema.usda" instead of absolute paths
to add installed schemas as sublayers. (Issue #158, #211)
- Improved USD scenegraph instancing to allow more sharing of assets with
inherits or specializes arcs. In one large example, this decreased stage load
time by ~60%, stage memory usage by ~65%, and time to first image in usdview
by ~20%.
- Several optimizations to reduce I/O operations for .usda and .usdc files.
- Add support for compressed structural sections in .usdc files. This can
significantly decrease file sizes for files that are dominated by prim and
property hierarchy; one production shading file decreased in size by ~94%,
from 21 MB to 1.3 MB.

Compressed files are marked as version 0.3.0 and are not readable by earlier
USD releases. To help with transition, USD will not write these compressed
files by default until a future release. Users may enable this feature now
by setting the `USD_WRITE_NEW_USDC_FILES_AS_VERSION` environment variable
to "0.3.0". We plan to add compression for geometry data and time samples
in a future release.

- UsdUtilsExtractExternalReferences now checks for references to external files
in property values and metadata.
- Increased precision for rotations attribute in UsdSkelPackedJointAnimation
schema to 32-bit.
- UsdGeomPrimvar now allows primvar names with arbitrarily-nested namespaces.
- Sizeable refactor in Hydra to support sprims more like rprims in anticipation
of future lights and material support.
- Hydra no longer syncs rprims that are not visible.
- Several performance and stability fixes to point instancer handling in Hydra.
- "Reload All Layers" in usdview will try not to reset the camera or timeline.
- Numerous other improvements to usdview.
- The Alembic reader now converts single samples for properties in .abc files
to single time samples in USD, instead of default values.
- Updated required Katana version to Katana 2.5v1.
- Improved bounds computations for point instancers in Katana plugin
- Account for motion sample time overrides when computing bounding boxes in
Katana plugin.
- Improved stage cache in Houdini plugin, which can have significantly
better performance in some circumstances.
- Improved handling of instanced USD primitives in Houdini plugin.

### Deprecated
- UsdGeomFaceSetAPI and related API in usdShade and usdLux in favor of new
UsdGeomSubset schema.

### Removed
- UsdStage::Close.
- Camera zUp-related functionality
- Support for faceVaryingInterpolateBoundary in UsdGeomMesh schema.
See faceVaryingLinearInterpolation instead.

### Fixed
- Bug in build_usd.py where specifying `--no-embree` did the opposite.
(Issue #276)
- Bug in build_usd.py where specifying `--force-all` or `--force` on a
Python dependency would cause the script to error out early. (Issue #263)
- Race condition between TfType consumers and TfType registry initialization.
- Composition bug where references with the same prim path and relative asset
path would be considered duplicates even when anchoring location differed.
- Composition bug where payloads on arcs requiring ancestral opinions could
result in errors.
- Change processing bug when removing sublayers specified by search path.
- Stack overflow crash when reading .usdc files due to excessive recursion.
- Possible crash in Hydra when using basis curves.
- Memory leak in Hydra task controller.
- Build issue for Alembic plugin with HDF5 support disabled when
precompiled headers are enabled (which is the default on Windows).
- Several other bugs in Alembic reader.
- Performance issue in Katana plugin due to inefficiency in UsdShadeNodeGraph.

## [0.8.0] - 2017-07-29

### Added
Expand Down
16 changes: 12 additions & 4 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -58,24 +58,32 @@ function(_enableThirdPartyPlugin identifier)
endfunction()

if (${PXR_BUILD_KATANA_PLUGIN})
if (NOT ${PXR_BUILD_USD_IMAGING})
if(NOT ${PXR_ENABLE_PYTHON_SUPPORT})
message(WARNING "Skipping third_party/katana because PXR_ENABLE_PYTHON_SUPPORT=OFF")
elseif(NOT ${PXR_BUILD_USD_IMAGING})
message(WARNING "Skipping third_party/katana because PXR_BUILD_USD_IMAGING=OFF")
else()
_enableThirdPartyPlugin("katana")
endif()
endif()

if (${PXR_BUILD_MAYA_PLUGIN})
if (NOT ${PXR_BUILD_USD_IMAGING})
if(NOT ${PXR_ENABLE_PYTHON_SUPPORT})
message(WARNING "Skipping third_party/maya because PXR_ENABLE_PYTHON_SUPPORT=OFF")
elseif (NOT ${PXR_BUILD_USD_IMAGING})
message(WARNING "Skipping third_party/maya because PXR_BUILD_USD_IMAGING=OFF")
else()
_enableThirdPartyPlugin("maya")
endif()
endif()

if (${PXR_BUILD_HOUDINI_PLUGIN})
message(STATUS "Enable houdini plugin")
_enableThirdPartyPlugin("houdini")
if(NOT ${PXR_ENABLE_PYTHON_SUPPORT})
message(WARNING "Skipping third_party/houdini because PXR_ENABLE_PYTHON_SUPPORT=OFF")
else()
message(STATUS "Enable houdini plugin")
_enableThirdPartyPlugin("houdini")
endif()
endif()

if (${PXR_BUILD_DOCUMENTATION})
Expand Down
36 changes: 36 additions & 0 deletions LICENSE.txt
Original file line number Diff line number Diff line change
Expand Up @@ -377,3 +377,39 @@ MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED
AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),
STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

============================================================
LZ4
============================================================

LZ4 - Fast LZ compression algorithm
Copyright (C) 2011-2017, Yann Collet.

BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

You can contact the author at :
- LZ4 homepage : http://www.lz4.org
- LZ4 source repository : https://github.com/lz4/lz4
55 changes: 30 additions & 25 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,28 +48,28 @@ Dependencies
The Core USD libraries (located in pxr/base and pxr/usd respectively)
have the following dependencies.

| Name | Version |
| ---- | --------- |
| C++ compiler | GCC 4.8, Clang 3.5, MSVC 14.0(VS 2015) |
| C compiler | GCC 4.8, Clang 3.5, MSVC 14.0(VS 2015) |
| [CMake](https://cmake.org/documentation/) | 2.8.8 (Linux/OS X), 3.1.1 (Windows) |
| [Python](https://python.org) | 2.7.5 |
| [Boost](https://boost.org) | 1.55 (Linux), 1.61.0 (OS X/Windows) |
| [Intel TBB](https://www.threadingbuildingblocks.org/) | 4.3.1 |
| Name | Version | Optional |
| ---- | ------- | :------: |
| C++ compiler | GCC 4.8, Clang 3.5, MSVC 14.0(VS 2015) | |
| C compiler | GCC 4.8, Clang 3.5, MSVC 14.0(VS 2015) | |
| [CMake](https://cmake.org/documentation/) | 2.8.8 (Linux/OS X), 3.1.1 (Windows) | |
| [Python](https://python.org) | 2.7.5 | x |
| [Boost](https://boost.org) | 1.55 (Linux), 1.61.0 (OS X/Windows) | |
| [Intel TBB](https://www.threadingbuildingblocks.org/) | 4.3.1 | |

The Imaging and USD Imaging components (located in pxr/imaging and pxr/usdImaging
respectively) have the following additional dependencies. These components can
be disabled at build-time, for further details see [Advanced Build Configuration](BUILDING.md).

| Name | Version | Optional |
| ---- | --------- | ---------- |
| [OpenSubdiv](https://github.com/PixarAnimationStudios/OpenSubdiv) | 3.0.5 (Linux/OS X), 3.2.0 (Windows) | |
| [GLEW](http://glew.sourceforge.net/) | 1.10.0 | |
| [OpenEXR](http://www.openexr.com) | 2.2.0 | |
| [OpenImageIO](https://sites.google.com/site/openimageio/home) | 1.5.11 | |
| [Ptex](http://ptex.us/) | 2.0.30 | Y |
| [PySide](http://wiki.qt.io/PySide) | 1.2.2 | |
| [PyOpenGL](https://pypi.python.org/pypi/PyOpenGL/3.1.0) | 3.1.0 | |
| ---- | ------- | :------: |
| [OpenSubdiv](https://github.com/PixarAnimationStudios/OpenSubdiv) | 3.0.5 (Linux/OS X), 3.2.0 (Windows) | |
| [GLEW](http://glew.sourceforge.net/) | 1.10.0 | |
| [OpenEXR](http://www.openexr.com) | 2.2.0 | |
| [OpenImageIO](https://sites.google.com/site/openimageio/home) | 1.5.11 | |
| [Ptex](http://ptex.us/) | 2.0.30 | x |
| [PySide](http://wiki.qt.io/PySide) or [PySide2](http://wiki.qt.io/PySide2) (experimental) | 1.2.2, 2.0.0~alpha0 | x |
| [PyOpenGL](https://pypi.python.org/pypi/PyOpenGL/3.1.0) | 3.1.0 | x |

Getting and Building the Code
-----------------------------
Expand All @@ -88,14 +88,18 @@ additional documentation for running cmake directly.

#### 1. Install prerequisites (see [Dependencies](#dependencies) for required versions)

- C++ compiler:
- gcc
- Xcode
- Microsoft Visual Studio
- NASM (required for Imaging on Windows)
- CMake
- Python
- PySide (required for USD Imaging)
- Required:
- C++ compiler:
- gcc
- Xcode
- Microsoft Visual Studio
- NASM (required for Imaging on Windows)
- CMake
- Optional (Can be ignored by passing `--no-python` as an argument to `build_usd.py`)
- Python (required for [bindings and tests](BUILDING.md#python))
- PyOpenGL (required for some [UsdImaging components](BUILDING.md#python))
- PySide or PySide2 (experimental) (required for some [UsdImaging components](BUILDING.md#python))


#### 2. Download the USD source code

Expand Down Expand Up @@ -132,7 +136,8 @@ then build and install USD into ```/opt/local/USD```.
##### Windows:

Launch the "Developer Command Prompt" for your version of Visual Studio and
run the script in the opened shell.
run the script in the opened shell. Make sure to use the 64-bit (x64) command
prompt and not the 32-bit (x86) command prompt.

See https://docs.microsoft.com/en-us/dotnet/framework/tools/developer-command-prompt-for-vs for more details.

Expand Down
Loading

0 comments on commit 4967755

Please sign in to comment.