[usdAbc] Behavior where an Xform with a single geometry or camera in an
Alembic file would be collapsed into a single prim in USD can now be disabled
by setting the environment variable USD_ABC_XFORM_PRIM_COLLAPSE to 0.
(PR #527)

[pxrUsdMayaGL] Many performance improvements in the Hydra batch renderer.

[usdMaya, pxrUsdMayaGL] Using USD in live surface uses the normal at the
snap point.

[usdMaya, pxrUsdTranslators] Various code cleanup in USD exporter.

Katana plugin:

[usdKatana] Use bracketing sample closest to shutter open/close if no frames
found in shutter interval.

[usdKatana] Honor UsdStage's authored timeCodesPerSecond and framesPerSecond.
If they differ, Katana will operate in frames, with current time, motion
samples, and shutter interval scaled appropriately.

Houdini plugin:

[gusd] Rebind materials when creating sub-root references.

[gusd] Optimizations in handling of stage mask operations.

[OP_gusd] USD output ROP now allows binding to shaders referenced from other
models.

Removed

Imaging:

[hd] Removed Repr requirements from GetRenderTag API.

Fixed

Build:

[cmake] User-specified CMAKE_MODULE_PATH was being ignored during build.
(PR #614)

[cmake] Installed headers could take precedence over source headers, leading
to build failures. (Issue #83)

[usdImaging] Wrong transforms were being used when using usdLux light
transforms (Issue #612).

[usdImaging] Fix for usdImaging's TextureId not accounting for origin.

Houdini plugin:

[gusd] Several fixes for building with Houdini 17. (PR #549)

[gusd] Several fixes for stale caches and crashes.

[gusd] Potential PackedUSD transform issues in Houdini 16.5.

[18.09] - 2018-08-07

This release includes several major new features and changes, including:

.usdz file format for packaging assets into a single file

Introduction of UsdPreviewSurface

Switch to calendar-based versioning scheme for USD libraries

Added

Build:

build_usd.py can be given custom arguments for building libraries via the
--build-args option.

Option to disable building usdview by specifying PXR_BUILD_USDVIEW=OFF
when running cmake or --no-usdview when running build_usd.py.

Allow specifying Boost_USE_STATIC_LIBS to cmake on Windows. Note that
static boost libraries may lead to issues with Python bindings. (Issue #407)

USD:

ArAsset and ArResolver::OpenAsset interfaces allowing resolvers to control
how data for a given asset is accessed.

"Package" asset and layer concepts to Ar and Sdf, including
"package-relative" asset path syntax for addressing assets within packages.

sdffilter utility for inspecting and summarizing the contents of a layer.

.usdz file format. This format allows multiple assets (including layers,
textures, etc.) to be packaged into a single file that can be consumed by
USD without being unpacked to disk. These files can be created via the
"usdzip" command-line utility or via APIs like UsdZipFileWriter and
UsdUtilsCreateNewUsdzPackage.

Support for importing inherit paths metadata as a info.usd group attribute

"additionalLocations" parameter to PxrUsdInVariantSelect

"asArchive" option to PxrUsdIn. When enabled, a "usd archive" location will
be created rather than loading the USD data directly. This is intended for
passing along to renderers which support reading USD natively.

PxrUsdIn supports a "sharedLooksCacheKey" attribute to permit sharing cached
USD shading information across multiple references/instances which are known
to be identical from a pipeline standpoint.

Houdini plugin:

Support import of Scope prims.

Changed

Build:

USD resource files are now installed into /lib/usd instead of
/share/usd/plugins to bring them closer to the installed libraries.

OpenGL dependency in imaging is now optional and may be disabled by
specifying PXR_ENABLE_GL_SUPPORT=FALSE when running cmake. This will
disable all GL-based functionality, including usdview.

OpenImageIO dependency imaging is now optional and is disabled by default.
Support must be enabled by specifying PXR_BUILD_OPENIMAGEIO_PLUGIN=TRUE
when running CMake or --openimageio when running build_usd.py.

build_usd.py on Windows will now use powershell to download dependencies
if it's available to avoid TLS 1.2 issues. (Issue #449)

build_usd.py now directs users to install PySide2 via pip on MacOS.

USD:

Numerous fixes and cleanup changes throughout to improve performance,
convert code to more modern patterns, and remove unneeded uses of boost.

ArGetResolver no longer returns an instance of the ArResolver subclass used
for asset resolution. Clients can use ArGetUnderlyingResolver in the special
cases where access to the exact subclass is necessary.

ArResolver context and scoped cache functions are now public and have been
renamed to match convention. Resolvers that override these functions will
need to be updated.

ArDefaultResolver default context for an asset now includes the directory
of the asset in its search path.

Optimizations to prim change processing in UsdStage. In one example,
processing time for adding new prims decreased ~50%.

New .usdc files now default to version 0.7.0, which includes compression
features introduced in earlier releases. These files cannot be read in USD
releases prior to v0.8.4. Users can revert to writing older versions by
setting the environment variable USD_WRITE_NEW_USDC_FILES_AS_VERSION
to an older version.

Several changes to provide cleaner and more detailed runtime error messages.

Better support for generating code for properties of multiple-apply API
schemas in usdGenSchema.

Schema types are now specified using the UsdSchemaType enum instead of
individual flags.

"expansionRule" attribute for UsdCollectionAPI is now optional; collections
are created simply by calling UsdCollectionAPI::ApplyCollection.

UsdGeomBBoxCache's bounds computation now includes all defined prims,
including those with no type specified.

UsdTraverseInstanceProxies() now includes instance proxy prims that pass the
default predicate instead of all prims.

.usdc files now support zero-copy array access, which can significantly
improve performance. This feature is supported by all .usdc file
versions, but may not be activated for certain files depending on their
data alignment. In these cases, users can simply re-export the file
to activate zero-copy access.

Users can set the environment variable USDC_ENABLE_ZERO_COPY_ARRAYS to 0
to disable this feature. Users can also track cases where array data is
copied due to modifications by setting the environment variable
VT_LOG_STACK_ON_ARRAY_DETACH_COPY to 1.

Other performance improvements in UsdStage composition.

API schemas are now classified as either "applied" or "non-applied". See
"Generating New Schema Classes" tutorial for more information.

Behavior of UsdUtils stitching API can now be customized via callbacks.

UsdShadeMaterialBindingAPI now issues a warning when computing resolved
material bindings if prims with old "look:binding" relationships are found.
This can be disabled by setting the environment variable
USD_SHADE_WARN_ON_LOOK_BINDING to 0.

UsdRiMaterialAPI now supports writing ri:surface outputs. ri:bxdf outputs are
still written by default, but this can be disabled by setting the environment
variable USD_RI_WRITE_BXDF_OUTPUT to 0.

UsdRiStatementsAPI now supports encoding ri attibutes as primvars. This is
disabled by default but can be enabled by setting the environment variable
USDRI_STATEMENTS_WRITE_NEW_ATTR_ENCODING to 1.

Additions and improvements to UsdLux and UsdSkel schemas.

Hydra backends that consume full network materials now receive all primvars
for all rprims, not just those with bound materials.

Several improvements to primvar handling and picking infrastructure in Hydra.

Several performance improvements in Hydra, especially for material bindings
and scenes with heavy nesting of instances.

Ongoing work on Hydra compute framework.

Conformed Hydra API to use "Primvar" instead of "PrimVar".

HdMaterialNetwork is now emitted in topological order.

Redundant animation data is no longer written during Maya export.

Katana plugin now allows parent scope names for materials other than "Looks".
This can be enabled by setting the USD_KATANA_ALLOW_CUSTOM_MATERIAL_SCOPES
environment variable to 1.

Refactor material loading in Katana plugin so that material locations aren't
computed all at once and site ops can run on each location individually.

Crash in UsdCollectionAPI::ApplyCollection when given an invalid collection
name. (Issue #425)

Change processing for changes to drawMode property in imaging.

Numerous fixes to cards draw mode.

Change processing bug when removing nested point instancers.

Crashes in pxOsd due to incorrect authored crease data.

Bug where usdview would not redraw after switching renderer.

Crash in Alembic plugin when reading files with object names beginning
with numerals.

Change processing bug when reloading an Alembic layer. (Issue #429)

Several crash bugs in Maya plugin.

Material export bug in Maya plugin where the surface terminal was not
being exported under the "ri" render context. This fix requires re-exporting
any material networks exported from Maya using version 0.8.4.

Prevent overwriting instance sources that resolve to the same master name
in Katana plugin.

Path resolution issue in Houdini plugin.

Miscellaneous bug fixes in Houdini plugin.

[0.8.4] - 2018-03-05

Added

The PXR_PLUGINPATH_NAME environment variable name may be changed by
specifying PXR_OVERRIDE_PLUGINPATH_NAME=<name> when running cmake.

Example sendmail plugin for usdview, located at
extras/usd/examples/usdviewPlugins/sendMail.py

ArDefaultResolverContext, a context object for the ArDefaultResolver asset
resolution implementation that allows additional search paths to be used
during asset resolution.

Users can now query the UsdNotice::ObjectsChanged notice for the changed
scene description fields that affected the reported objects.

UsdAPISchemaBase base class for all API schemas.

All UsdGeomBoundable schemas in usdGeom now have functions for computing
extents. These functions are also used when calling the general
UsdGeomBoundable::ComputeExtentFromPlugins method.

UsdLuxCylinderLight schema.

Significant additions to edge and point selection and highlighting
capabilities in Hydra.

Initial support for UsdSkel bones in usdImaging.

Initial support for exporting joints and skin clusters using the UsdSkel
schema in the Maya plugin.

Documentation for third party plugin code is now included in the
doxygen build.

Changed

build_usd.py no longer checks for pyside-uic or boost::python if Python
support is disabled, and no longer builds OpenImageIO's Python bindings.

Updated moduleDeps.cpp files to only register direct library dependencies.
This makes it easier for users to generate their own file for custom schemas.

ArDefaultResolver now allows search paths like "Dir/File.usd" to be anchored
to other paths via AnchorRelativePath. During composition, these asset paths
will be resolved relative to the layer where they were authored before
falling back to the previous search path behavior.

Updates to VtArray and .usdc code in preparation for zero-copy functionality.

Inherit and specializes arcs to non-existent prims are no longer considered
composition errors.

Apply method on API schemas have been moved to UsdAPISchemaBase and now
require a UsdPrim. Also improved documentation.

Property queries on UsdPrim now accept a predicate for filtering results.

UsdPrim::HasAPI now accepts an instance name argument to query if a prim has
a particular instance of a multiple-apply API schema has been applied.

Adding or removing an inert prim spec no longer causes affected prims to
be resynced. These prims are now reported as "changed info only" in the
corresponding UsdNotice::ObjectsChanged notice.

UsdNotice::ObjectsChanged::GetResyncedPaths and GetChangedInfoOnlyPaths now
return a custom range object instead of a SdfPathVector.

Removed

UsdShadeLook schema. This has been replaced by UsdShadeMaterial.
Material bindings authored using the "look:binding" relationship are no
longer respected.

Fixed

Various typo and compiler warning fixes throughout the codebase.

Fixed bug where build_usd.py would not use the CMake generator specified at
the command line.

Fixed crash in Apply method on API schemas.

Fixed several bugs in UsdShadeMaterialBindingAPI::ComputeBoundMaterial.

Changing the population mask for a UsdStage now correctly releases resources
used by objects that have been excluded from the stage.

Fixed quadrangulation bug in Hydra with handling topology with degenerate or
hole faces.

Fixed patch param refinement for Loop meshes.

Several fixes to the nascent Hydra lights pipeline.

Fixed bug in the usdExport AlembicChaser in the Maya plugin where primvars
that match the primvarprefix do not get exported. They are now exported with
constant interpolation, and using _AbcGeomScope is no longer required.

Fixed bug in Katana plugin where infinite recursion would occur in pxrUsdIn
when sources were outside the scope of the point instancer. (Issue #286)

[0.8.3] - 2018-02-05

Added

Compression in .usdc files for integer arrays and scalar floating point
arrays. The latter are compressed if the values are all integers or there
are a small number of unique values. In the example Kitchen Set asset on
the USD website, the total size of the geometry layers decreased by ~46%,
from 25 MB to 14 MB.

.usdc files with this new compression enabled are marked as version 0.6.0
and are not readable by earlier releases. These files are not written by
default; this may be enabled by setting the environment variable
USD_WRITE_NEW_USDC_FILES_AS_VERSION to "0.6.0".

Ability to record and query API schemas that have been applied to a prim
via new Apply method on API schema classes, UsdPrim::GetAppliedSchemas and
UsdPrim::HasAPI. Custom API schemas should be updated with these new
methods by re-running usdGenSchema.

GetUnionedTimeSamples and GetUnionedTimeSamplesInInterval functions for
UsdAttribute and UsdAttributeQuery.

Ability to offset time for active value clips when using template clip
metadata via "templateActiveOffset" entry.

UsdUtilsGetDirtyLayers for retrieving dirty layers used by a UsdStage.

UsdListPosition enum values now specify the "append" or "prepend" list as
well as a position to provide users with finer-grained control.

The various Add... methods in Usd that take a UsdListPosition argument
now author entries to the back of the "prepend" list by default if no
"explicit" list exists. The old behavior of authoring to the (now
deprecated) "added" list can be restored by setting the environment
variable USD_AUTHOR_OLD_STYLE_ADD to 1.

Standard schema conventions are more strictly-enforced in usdGenSchema.

UsdCollectionAPI::AddCollection has been renamed ApplyCollection.

Enabled authoring of new UsdShade encoding by default. Authoring the old
(now deprecated) encoding can be restored by setting the environment variable
USD_SHADE_WRITE_NEW_ENCODING to 0.

The "joints" relationship on the UsdSkelSkeleton, UsdSkelPackedJointAnimation,
and UsdSkelBinding API schemas is now a token array-valued attribute.

UsdRiStatements API schema has been renamed to UsdRiStatementsAPI.

sdfdump utility now shows all specs in a layer, even if they have no fields.

Various improvements to Hydra reprs and geometry processing.

More improvements to Hydra's handling of invalid data.

Ongoing work to prepare Hydra to fully consume UsdShade schemas.

Refactored GL dependency out of Hd library.

Built-in variables in usdview interpreter are now accessed through a separate
usdviewApi object to avoid name collisions.

Performance improvements in Maya plugin when in Viewport 2.0.

Inclusion of info.usd.opArgs in Katana plugin is now parameterized; it will
be authored to the location where a "setOpArgsToInfo" attribute exists and is
set to 1.

Deprecated

The "added" list for list ops in scene description is deprecated in favor
of the "prepend" and "append" lists.

Removed

GfCamera::ZUp and GfCamera::YUp.

UsdSkelJoint schema.

Fixed

build_usd.py ensures OpenImageIO build does not pick up OpenEXR from other
locations, which could have led to runtime errors. (Issue #315, Issue #325)

Headers are now installed properly for monolithic builds. (Issue #277)

Original install location will no longer be searched for plugins after
relocating builds. (Issue #363)

Fixed thread-safety issue where plugins with the same name but in different
locations could be loaded twice. (Issue #358)

Fixed bug where layers that were muted via SdfLayer::AddToMutedLayers before
they were first opened could not be unmuted.

Fixed bug in usdGenSchema where changing an existing property's type in a
schema would not be reflected in the generated code.

Fixed bug where a large (> 1460) number of variants in a .usda file would
cause a "memory exhausted" error when parsing that file.

Support for computing bounding boxes for UsdGeomPointInstancer instances
using UsdGeomBBoxCache.

Support for residual GPU computations in Hydra.

Sheer display mode in Hydra, a 'see-through' display mode akin to the
mesh being covered in a sheer mesh fabric instead of its regular surface.
Implemented as a regular grid stipple pattern of the surface at 20% opacity.

Testing framework for usdview.

PxrUsdMayaXformStack for representing transform stacks in the Maya plugin.

Support for exporting Maya instancers to UsdGeomPointInstancers in the Maya
plugin.

Support for exporting groups of objects with the same material binding as
collections encoded with UsdCollectionAPI in the Maya plugin.

Support for vec4 primvars in the Katana plugin.

Support for point instancers with varying topology that don't have authored
velocities in the Katana plugin.

Support for importing collections encoded with new UsdCollectionAPI schema
in the Katana plugin.

Support for overriding data on a subset of point instancer instances in
the Houdini plugin.

Changed

Build system now checks that the compiler being used supports 64-bit builds.

Tf diagnostic warnings and status messages issued in secondary threads are
no longer printed to the terminal.

Multiple delegates may now be registered with the Tf diagnostic system.

When saving a new .usdc file over an existing file, data is first saved to a
temporary file then renamed to the destination file. This provides some
protection for other processes that were reading the old file.

Compression for structural sections in .usdc files is now enabled by default.
New .usdc files will be marked as version 0.4.0 instead of 0.3.0 to
accommodate a bug fix described below. This means that any new .usdc files
created in this release will not be readable by previous USD releases.

Users can disable the compression functionality by setting the environment
variable USD_WRITE_NEW_USDC_FILES_AS_VERSION to "0.0.1". This will ensure
new .usdc files will be readable in older releases.

UsdStage now uses the composed layer offset instead of its inverse when
mapping times in layers to the stage. For example, to shift the time samples
in a referenced layer stack forward by 10, users previously authored an
offset of -10. Under the new behavior, users need to author an offset of 10
instead.

Users can revert to the old behavior by setting the environment variable
USD_USE_INVERSE_LAYER_OFFSET to 1. This will be deprecated in a future
release.

UsdStage now allows a prim to be loaded without loading its descendants via
a new UsdLoadPolicy argument supplied to UsdStage::Load and LoadAndUnload.

UsdInherits, UsdSpecializes, and UsdReferences now map non-root prim paths
to the namespace of the edit target.

UsdAttribute::GetTimeSamplesInInterval now supports open/finite end points.

UsdClipsAPI now authors the dictionary-style clips metadata introduced in
release 0.7.6 by default.

Schemas may now define fallback values for the majority of metadata fields,
including custom metadata fields.

Schemas may now have more than 256 tokens defined.

usdedit now checks USD_EDITOR environment variable first when determining
which editor to use.

Ongoing refactoring to move code from hd to hdSt in preparation for material
support in Hydra and use of Hydra in other renderer backends.

Several performance optimizations in Hydra and UsdImaging.

usdview now uses a new JSON-based format for its settings file. Settings
files from older releases will be ignored.

Several changes to provide better support for Viewport 2.0 in Maya plugin.

Enum attributes in Maya now have their integer values exported to USD
instead of their descriptive names.

Improved attribute transfer on USD Unpack node in Houdini plugin.

usdvisible and usdactive attributes in Houdini plugin are now integers
instead of strings.

Several changes to Houdini plugin for compatibility with Houdini 16.5
and improved HDK usage.

Deprecated

UsdGeomCollectionAPI, in favor of new UsdCollectionAPI.

Removed

TfDiagnosticNotice. The Tf diagnostic system no longer emits notices;
consumers relying on these notices should use diagnostic delegates instead.

UsdGeomPointInstancer prototypeDrawMode attribute. Consumers should use
the new drawMode attributes on UsdGeomModelAPI instead.

Fixed

Issue where users were forced to define certain preprocessor macros in
order to build code against USD. In particular, an issue introduced in 0.8.1
caused users who did not #define PXR_ENABLE_PYTHON_SUPPORT to run into odd
errors at runtime. (Issue #304)

Bug that caused invalid .usdc files to be written. This affected all files
with version 0.3.0; however, this file version was not enabled by default in
release 0.8.1 and would only affect users who had explicitly enabled the
new version via the USD_WRITE_NEW_USDC_FILES_AS_VERSION environment setting.

Precision loss when writing time sample times to .usda files.

Performance issue in UsdStage where memory would still be consumed by
child prims after their parent prim had been deactivated.

Bug that caused UsdStage::ExpandPopulationMask to add invalid paths.

Bug that caused UsdObject::GetMetadata to not fill in resolved paths for
asset-valued metadata.

Bug where layer offsets were incorrectly applied when authoring time samples.

Bug in UsdUtilsStageCache that led to crashes during static destruction.

Unpickable objects now act as occluders during picking in Hydra.

Bug that caused usdview to stop drawing after "Reopen Stage" or "Open Stage".

Bug that caused usdview to not play all frames if the step size was changed.
(Issue #321)

Several performance and UI issues in usdview.

Crash in Maya plugin with nested assemblies and variant set selections.
(Issue #288)

Bug in Maya plugin where exporting over a previously-imported layer failed.

Bug in Maya plugin that caused lights to flip between directional and
non-directional in legacy viewport.

Various issues that prevented UsdKatana Python module from being imported.
(Issue #323)

Material bindings above point instancer prototypes are now preserved in
the Katana plugin.

Reworked how USD masters/sources are built in the Katana plugin so
that material bindings use the correct Katana paths.

[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.

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.

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

Added option to build_usd.py for building monolithic shared library
and for building new sample Embree plugin.

Added --mask option to usdcat, matching the --mask option in usdview.

Added CPU-side external computation support to Hydra.

Added Embree backend to serve as an example of how to add renderer
plugins to Hydra.

Added camera gates to usdview.

Added ability to Houdini plugin to set active state via usdactive
attribute and to write static data to default time via usdwritestatictopology,
usdwritestaticprimvars, and usdwritestaticgeo attributes.

Added UsdExportAttributes hda to Houdini plugin for setting primitive and
detail attributes which control various USD attributes or metadata.

Changed

Restored export of CMake targets from shared library builds.

Asset paths in .usda files may now contain any printable character.
(Issue #73)

Legacy special behavior for variant sets named "standin" has been disabled
by default.

Interpolation is now applied to time samples from clips when no sample
exists at a specified clip time.

Removed deprecated UsdShadePShader schema.

Enabled vertex primvar sharing in Hydra. Hydra can now use significantly
less GPU memory.

Fixed

Fixed several issues in build_usd.py related to building dependencies.
(Issue #225, #230, #234)

Fixed bug where UsdGeomPrimvar::IsIndexed() would not work for attributes
with only authored time samples. (Issue #238)

Fixed small platform inconsistencies for Windows in Hydra.

Fixed crash in Katana plugin when using point instancers that did not have
scales or orientations specified. (Issue #239)

Fixed issue in Houdini plugin where the "w" attribute was not converted
to the "angularVelocities" attribute for point instancer prims.

[0.7.6] - 2017-06-30

Added

Added build_scripts/build_usd.py for building USD and its dependencies.

Added support for building static libraries or a single monolithic
shared library. See BUILDING.md for more
details.

Added support for color spaces to Usd. Color configuration and management
system can be specified on a UsdStage (via the stage's root layer), and
colorSpace metadata is available on any UsdAttribute.

Added clip set functionality to Usd. This provides the ability to specify
multiple sets of value clips on the same prim, which allows users to compose
different sets of clips together. See UsdClipsAPI for more details.

Added initial UsdLux schemas for representing interchangeable lights and
related concepts, and UsdRi schemas for Renderman-specific extensions.
UsdImaging/Hydra support will be coming in a future release.

Added ability to specify smooth triangle subdivision scheme for catmullClark
surfaces in UsdGeomMesh and imaging support in Hydra.

Added backdrops for node layout description in UsdUI.

Added support for sharing immutable primvar buffers to Hydra.
This can greatly reduce the memory required on the GPU when displaying
typical scenes. It is currently experimental and disabled by default. It
can be enabled for testing with the environment variable
HD_ENABLE_SHARED_VERTEX_PRIMVAR.

Added support for uniform primvars for basis curves in Hydra.

Added ability to Alembic plugin to control number of Ogawa streams used for
each opened archive via the environment variable USD_ABC_NUM_OGAWA_STREAMS,
which defaults to 4.

Added Katana plugin support for reading UsdLux lights.

Added --camera command line argument to usdview to specify the initial
camera to use for viewing.

Changed

Made HDF5 backend for Alembic plugin optional. HDF5 support is enabled by
default but may be disabled by specifying PXR_ENABLE_HDF5_SUPPORT=FALSE
to CMake.

Metadata fields for value clips feature in UsdStage (e.g. clipAssetPaths,
clipTimes, etc.) have been deprecated in favor of the new clips metadata
dictionary. Authoring APIs on UsdClipsAPI still write out the deprecated
metadata unless the environment variable USD_AUTHOR_LEGACY_CLIPS is set
to 0. This will be disabled in a future release.

When using value clips, Usd will now report time samples at each time
authored in the clip times metadata.

Completed support for encoding UsdShade data using UsdAttribute connections.
Authoring APIs still write out the old encoding, unless the environment
variable USD_SHADE_WRITE_NEW_ENCODING is set to 1. This will be enabled
in a future release.

Removed support for deprecated UsdShade schemas UsdShadeParameter and
UsdShadeInterfaceAttribute, which have been superseded by UsdShadeInput.

Removed deprecated UsdRiLookAPI, which has been replaced by UsdRiMaterialAPI.

Removed deprecated Hydra scene delegate APIs.

Significant refactoring and refinements to allow multiple backends to be
plugged in to Hydra.

UsdImaging now pushes GL_DEPTH_BUFFER_BIT to avoid any potential state
pollution issues when integrating it with other renderers.

Improved error handling in Hydra for:

Invalid point instancer input

Inconsistent displayColor and displayOpacity primvars

Direct instances of imageable prims

usdview more gracefully handles the situation where it doesn't get a
valid GL context (e.g., due to limited resources on the GPU).

Fixed

Fixed issue that caused IDEs and other tools to find headers in the build
directories rather than the source directories.

Fixed race condition in TfType.

Fixed long-standing memory corruption bug in Pcp that surfaced when
building on MacOS with XCode 8.3.2.

Fixed potential deadlocks in Usd and Pcp due to issues with TBB task group
isolation.

Fixed bug where UsdStage::Flatten was not preserving attribute connections.

Fixed infinite loop on glGetError in the presence of an invalid GL context.
(Issue #198)

Fixed build issues that caused the Maya plugin to be unusable after building
on MacOS.

[0.7.5] - 2017-05-01

C++ namespaces are now enabled by default. The PXR_ENABLE_NAMESPACES CMake
option may be used to disable namespaces if needed.

This release adds initial experimental support for building the USD core
libraries on Windows.

Added

Added ability to build doxygen documentation. See
BUILDING.md for more details.

Added support for pre-compiled headers. By default, this is disabled
for Linux and Mac builds and enabled for Windows builds. This may be
configured with the PXR_ENABLE_PRECOMPILED_HEADERS CMake option.

Added many unit tests for core libraries

Added UsdStage::Save and UsdStage::SaveSessionLayers

Added attribute connection feature that allows consumers to describe
connections between an attribute and other prims and properties.

Added instance proxy feature that allows consumers to interact with
objects on a UsdStage as if scenegraph instancing were not in use while
retaining the performance benefits of instancing.

Plugins providing Boundable schema types can now register functions for
computing extents. This allows code in the USD core to compute extents for
prims with types provided by external schemas.

Plugins can now register MayaPrimWriter subclasses for exporting Maya
nodes to USD prims.

Added ability to override default motion data (sample times, current time,
shutter open/close) on a per-scope basis in Katana plugin. Users can author
these overrides by modifying the global graph state, then decide to use
the default motion values with or without these overrides applied.

Changed

Removed OpenEXR dependency from core libraries. Note that OpenEXR is still
required for imaging.

Made Ptex dependency optional. It is only required if Ptex support for
imaging is enabled. This is on by default, but can be disabled by specifying
PXR_ENABLE_PTEX_SUPPORT=FALSE to CMake.

UsdTreeIterator has been replaced by UsdPrimRange, which provides
container-like semantics in C++ (e.g., the ability to use them in range-based
for loops).

Removed UsdPrim::GetPayload API

UsdRelationship and UsdAttribute will no longer forward target/connection
paths that point to objects within instances to objects in master prims.
Users can use the new instance proxy functionality to work with these paths
instead.

Relationships belonging to prims in instances that point to the root of the
instance no longer cause errors.

Value clip metadata can now be sparsely overridden across composition arcs.

Deprecated shading property schemas UsdShadeParameter and
UsdShadeInterfaceAttribute. These are replaced by UsdShadeInput, which can
represent both input parameters on shaders and interface inputs on node
graphs.

The --compose command line parameter for usddiff is now --flatten

Numerous cleanup changes for Hydra API. In particular:

HdEngine::Draw has been retired in favor of HdEngine::Execute.

HdSceneDelegate::IsInCollection has been deprecated in favor of render-tag
based API.

Meshes with subdivisionScheme = none will no longer be bilinearly subdivided.

usdview now displays prim hierarchies beneath instances inline in the
browser. The "Jump to Master" command has been removed in favor of this
new functionality.

The default specular response in usdview has been reduced by a factor of 5.

The Maya plugin now excludes attributes during import if they are tagged
with customData specifying them as generated.

Numerous changes for ongoing Mac and Windows port efforts.

Changed scoping of built-out point instancer prototypes in Katana plugin
so that their hierarchy more closely matches the original USD hierarchy.

Fixed

Added workaround to avoid redefined "_XOPEN_SOURCE" and "_POSIX_C_SOURCE"
macro warnings due to Python includes on Linux. (Issue #1)

Fixed issue where code would be generated directly into the install location
when running cmake, interfering with the use of make's DESTDIR functionality.
(Issue #84)

Fixed issue in Maya plugin where multiple assemblies that reference the
same file might all be affected by the edits of one particular assembly
when viewing them via a proxy.

Fixed issue in Maya plugin where path resolution was being done by the
plugin itself rather than deferring to Usd and Sdf.

[0.7.4] - 2017-03-03

USD now supports C++ namespaces. They are disabled by default in this release
to ease transition, but we anticipate enabling them by default in the next
release.

Specify the PXR_ENABLE_NAMESPACES CMake option to enable namespaces.
See documentation in BUILDING.md for more details.

Added

Added GfHalf type to represent half-precision numeric values. This type
is currently an alias to the "half" type supplied by the ilmbase library
USD is built against. This will be changed in an upcoming release to point
to a version of "half" that is included in the USD codebase, which will
allow us to remove the USD core's dependency on ilmbase.

Added UsdShadeInput class to represent shader or NodeGraph input.
These are encoded as attributes in the "inputs:" namespace. By default,
this encoding will not be written out via UsdShadeConnectableAPI unless
the 'USD_SHADE_WRITE_NEW_ENCODING' environment variable is set.

Added "Composition" tab to usdview that allows users to inspect the
composition structure of a selected prim.

Added tests for Hdx. These tests are currently not run as part of the unit
test suite, but are being included for users to try on their platforms and
to serve as example code.

[0.7.3] - 2017-02-05

Added

Added support for RelWithDebInfo and MinSizeRel release types.

Added initial support for C++ namespaces. This feature is
currently experimental but can be enabled by specifying the
PXR_ENABLE_NAMESPACES option to CMake. See documentation in
BUILDING.md for more details.

Added population masking to UsdStage.

Consumers can specify what parts of a stage to populate and use
to reduce resources used by the stage.

usdview now has a --mask option allowing users to view just the
specified portion of a stage.

Added UsdPrim API for collecting relationship targets authored
in a given prim subtree.

Added UsdShade API to allow creating and connecting outputs
on subgraphs and shaders instead of terminals.

Added support for bool shader parameters in Hydra. (Issue #104)

Added ability to independently toggle display of geometry with
purpose=proxy in usdview.

Added initial set of unit tests for pxrUsd library in the Maya plugin.

The Maya plugin now supports multi-sampling of frames during export.

Attributes in Maya may now be tagged to be converted from double
to single precision during export.

Alembic tagging for attributes in Maya are now respected during
export. This includes support for primvars and custom prefixes.

Added support for playing back animation in assemblies via Hydra
when the Playback representation is activated in Maya.

Added support for reading material references in Katana plugin.

Changed

CMake will no longer look for X11 on OSX. (Issue #72)

The build system now uses relative paths for baking in plugin
search paths, allowing for relocatable builds as long as all
build products are moved together as one unit.

Fixed

Fixed bug where edits to a layer opened in Maya would persist when
reopening that layer in a new scene.

Fixed issue where exporting USD from the Maya Export window would
produce files ending with ".usda", even if a different format
was specified. The exporter should now respect any extension that
is entered, so long as the "Default file extensions" option is
turned off.

Fixed several issues with example plugins being improperly built, making
them unusuable, and missing functionality.

Various other bug fixes and performance improvements.

[0.7.1] - 2016-09-21

Added

UsdMaterial schema for shading, intended to replace UsdLook. Also added
support for this new schema to Hydra.

Parallel teardown of some data members in UsdStage, speeding up overall
teardown by ~2x.

Support for packed vertex normals to Hydra, reducing GPU memory consumption
by 20-30% in some cases.

Ability to compare two composed stages to usddiff by specifying the
"--compose" or "-c" options.

Support for soft-selection for collapsed USD assemblies in Maya.

Support for exporting color sets and UV sets as indexed primvars from Maya.

Changed

Refactored Hydra libraries to move higher-level concepts out of the core
hd library and into hdx.

Removed use of opensubdiv3/ include path from imaging code in favor of
standard opensubdiv/ include.

Modified UsdStage to automatically load newly-discovered payloads if
their nearest ancestor's payload was also loaded. For example, consumers
will no longer have to explicitly call UsdStage::Load to ensure payloads
are loaded when switching variants on a prim, so long as their nearest
ancestor is also loaded.

Refactoring and other changes to help with Mac and Windows ports.

Updated doxygen and other documentation.

Fixed

Fixed issue that caused Alembic plugin (usdAbc) to be misconfigured at
build time, which required users to manually update its plugInfo.json
and set an environment variable at runtime to make it work. This plugin
is now installed to $PREFIX/plugin/usd/ and requires no additional
steps to use once it has been built.

Fixed issue with .usdc files that resulted in corrupted files on Windows.
The file structure was changed, so the .usdc version has been bumped
from 0.0.1 to 0.1.0. USD will continue to write 0.0.1 files by default,
but will begin writing 0.1.0 files in the near future.

Users may choose to write files with the new version immediately
by setting the environment variable USD_WRITE_NEW_USDC_FILES_AS_VERSION
to "0.1.0".

Note that 0.0.1 files are still readable using this release,
except for those that have been generated on Windows using 0.7.0.
Early testers on Windows will need to regenerate those files
with this release.

Fixed issue that caused usdGenSchema to generate files that could
not be compiled.

Added a workaround for TBB-related issue in Maya that caused hangs when
using the USD Maya plugin. This can be enabled at build time by
specifying the PXR_MAYA_TBB_BUG_WORKAROUND option to CMake.