1# Change Log 2 3## [21.11] - 2021-11-01 4 5Ar 2.0 is enabled by default as of this release. Ar 1.0 is deprecated and will 6be removed in a subsequent release. During this transition, Ar 1.0 may still be 7enabled by setting `PXR_USE_AR_2=OFF` when running CMake. 8 9### Build 10- Added support for building against debug versions of Python. Users must 11 specify `PXR_USE_DEBUG_PYTHON=ON` when running CMake. 12 (PR: [#1478](https://github.com/PixarAnimationStudios/USD/pull/1478)) 13 14- Libraries now use @loader_path instead of absolute paths for RPATHs on macOS. 15 (PR: [#1478](https://github.com/PixarAnimationStudios/USD/pull/1478)) 16 17- Libraries are now prefixed with "libusd_" on Linux and macOS and "usd_" on 18 Windows to avoid name conflicts with other packages. The previous behavior can 19 be restored by setting `PXR_LIB_PREFIX="lib"` on Linux and macOS or 20 `PXR_LIB_PREFIX=""` on Windows when running CMake. 21 (Issue: [#1615](https://github.com/PixarAnimationStudios/USD/issues/1615)) 22 23- Changes and fixes to build_usd.py: 24 - Added `--debug-python` and `--build-python-info` options to enable builds 25 against debug versions of Python and to control Python to build against. 26 (PR: [#1478](https://github.com/PixarAnimationStudios/USD/pull/1478)) 27 - Added `--use-cpp11-abi` option on Linux to control defininition of 28 `_GLIBCXX_USE_CXX11_ABI` when building USD and dependencies. 29 (Issue: [#1609](https://github.com/PixarAnimationStudios/USD/issues/1609)) 30 - Replaced `--debug` option with `--build-variant`. 31 - Updated download locations for boost, libtiff, and libpng to avoid 32 certificate expiration issues on systems with OpenSSL older than 1.1.0. 33 - Updated Blosc to v1.20.1 for compatibility with macOS Catalina (10.15). 34 - Fixed issue where the OpenEXR libraries would be installed in the root of 35 the filesystem. 36 (PR: [#1575](https://github.com/PixarAnimationStudios/USD/pull/1575) 37 38### USD 39- Fixed deadlock in NdrRegistry::GetNodesByFamily. 40 41- Changes for Ar 2.0: 42 - ArResolver::CreateDefaultContextForAsset now gives all registered resolvers 43 an opportunity to provide a default context for an asset. 44 - ArResolver::GetModificationTimestamp now returns an ArTimestamp object 45 instead of a VtValue. ArTimestamp requires the use of Unix time to 46 facilitate asset comparisons across resolvers. 47 - Added default implementations for ArResolver::GetExtension and 48 GetModificationTimestamp to simplify resolver implementations. 49 - Added UsdResolverExample, an example URI resolver implementation. 50 - Added more documentation. 51 52- Deprecated SdfLayer::GetExternalReferences and UpdateExternalReference in 53 favor of GetCompositionAssetDependencies and UpdateCompositionAssetDependency. 54 55- SdfLayer no longer treats the inability to retrieve a timestamp for a layer or 56 its external asset dependencies as an error under Ar 2.0. Calls to 57 SdfLayer::Reload will always reload layers with invalid timestamps. 58 59- Updated SdfCreateVariantInLayer and SdfCreatePrimInLayer to use "prepend" when 60 creating new variant sets. 61 (Issue: [#1552](https://github.com/PixarAnimationStudios/USD/issues/1552)) 62 63- Added support for Unicode asset paths on Windows. 64 (Issue: [#1443](https://github.com/PixarAnimationStudios/USD/issues/1443), 65 PR: [#1580](https://github.com/PixarAnimationStudios/USD/pull/1580)) 66 67- Fixed bug that caused errors when reading large .usda files. 68 69- Code invoked from Python that accesses invalid UsdPrim objects in C++ will now 70 emit a Python exception instead of crashing. 71 72- Fixed issue where ArResolver::OpenAsset would be called multiple times when 73 opening an ASCII .usd file or a .usdz file. 74 (Issue: [#1613](https://github.com/PixarAnimationStudios/USD/issues/1613)) 75 76- Fixed bugs in gfGenCode and usdGenSchema where file objects were not closed, 77 leading to ResourceWarnings from Python. 78 (PR: [#1557](https://github.com/PixarAnimationStudios/USD/pull/1557)) 79 80- Updated usdGenSchema to mark plugInfo as a resource instead of a library when 81 codeless schemas are being generated via skipCodeGen option. 82 83- Fixed bugs where changes to a layer's resolved path would not trigger 84 recomposition of prims when needed. 85 86- Fixed bug that caused crashes during composition. 87 (PR: [#1568](https://github.com/PixarAnimationStudios/USD/pull/1568)) 88 89- Fixed bug where UsdNotice::ObjectsChanged notice emitted after call to 90 UsdStage::Reload would contain pointers to destroyed objects. 91 (Issue: [#1605](https://github.com/PixarAnimationStudios/USD/issues/1605) 92 93- Fixed bug where UsdUtilsComplianceChecker returned a false error due to not 94 recognizing the `UsdTransform2d` shader. 95 (PR: [#1625](https://github.com/PixarAnimationStudios/USD/pull/1625)) 96 97- Fixed issue where UsdUtilsExtractExternalReferences would mutate the input 98 layer unnecessarily. 99 (Issue: [#1573](https://github.com/PixarAnimationStudios/USD/issues/1573) 100 101- Added UsdGeomVisibilityAPI. This schema provides attributes to control prim 102 visibility based on the "purpose" attribute from the UsdGeomImageable schema. 103 It will eventually be the place where primary visibility and purpose are also 104 housed and authored. 105 106- Added UsdGeomImageable::ComputeEffectiveVisibility for computing purpose 107 visibility. 108 109- Removed unused UsdGeomImageable::ComputeVisibility overload that took a 110 parentVisibility parameter. 111 112- Fixed broken Python bindings for UsdPhysics on Windows under Python 3.8+. 113 114- Fixed missing Python bindings and "kilogramsPerUnit" metadata in UsdPhysics. 115 (PR: [#1606](https://github.com/PixarAnimationStudios/USD/pull/1606)) 116 117- Deleted many previously deprecated UsdRi schema classes, namely, UsdRiRisBxdf, 118 UsdRiRisIntegrator, UsdRiRisObject, UsdRiRisOslPattern, UsdRiRisPattern, 119 UsdRiRslShader and all UsdRiLight and UsdRiLightFilters which are now part of 120 the usdRiPxr schema domain. 121 122- Updated connectedAPIBehavior so that APISchemas can now provide 123 connectableAPIBehavior by explicitly registering a new behavior associated 124 with the APISchemaType or by providing plug metadata to configure the 125 connectability behavior. Note that the latter can be used for codeless 126 schemas. 127 128- Fixed a couple of rare bugs associated with UsdShadeConnectableAPIBehavior and 129 UsdGeomComputeExtentFunction, resulting in robust behavior when new plugins 130 are registered. 131 132- Updated UsdUtilsUpdateSchemaWithSdrNodes to include new concepts like addition 133 of shaderId attribute to the generated schema classes, provide 134 apiSchemaCanOnlyApplyTo, and provide ability to control 135 UsdShadeConnectableAPIBehavior using metadata on the sdrNodes. Refer to the 136 updated documentation for more details. 137 138- Updated usdgenschemafromsdr to be able to provide sdr nodes via explicit asset 139 paths and to parse and add renderContext related information from the json 140 config. 141 142- Added support for different Sdr to Sdf type mappings. Introducimg a new 143 "sdrUsdDefinitionType" metadata field for sdrShaderProperty, which is used to 144 distinguish between sdrDefaultValue and equivalent sdfTypeDefaultValue. Note 145 that for backward compatibility SdrShaderProperty::GetDefaultValue currently 146 returns the same value as SdrShaderProperty::GetSdfTypeDefaultValue, this is 147 guarded by an environment variable "SDR_DEFAULT_VALUE_AS_SDF_DEFAULT_VALUE". 148 149- Single apply API schemas can now include built-in API schemas and can auto 150 apply to other single apply API schemas. API schemas are now only allowed to 151 inherit directly from UsdAPISchemaBase. 152 153- Applied API schemas can no longer inherit from other other applied API 154 schemas, which allows UsdPrim::HasAPI() to be a much faster query. Non-applied 155 schemas may still inherit from other non-applied schemas. 156 157- Added UsdLuxLightAPI, which can be applied to geometry to create a light. 158 UsdLuxLight has been deleted. Added the applied API schemas UsdLuxMeshLightAPI 159 and UsdLuxVolumeLightAPI, which include UsdLuxLightAPI as a builtin. 160 - The core lights UsdLuxCylinderLight, UsdLuxDiskLight, UsdLuxRectLight, 161 UsdLuxSphereLight, and UsdLuxPortalLight all inherit from from 162 UsdLuxBoundableLightBase, are now Boundable, and have extents/bbox 163 computations. 164 - The core lights UsdLuxDomeLight and UsdLuxDistantLight now inherit from 165 UsdLuxNonboundableLightBase and are not Boundable. 166 - Deprecated UsdLuxGeometryLight 167 - Deleted deprecated UsdLuxLightPortal (use UsdLuxPortalLight instead). 168 - Fixed issue where UsdLux would register default SdrShaderNodes with 'USD' 169 source types for lights defined outside of UsdLux. 170 - Default SdrShaderNodes registered for UsdLux lights now include shadow and 171 shaping API properties. 172 173### Imaging 174- First iteration of the Scene Index and Data Source system is now on by default 175 and compatible with existing scene and render delegates via emulation. No new 176 functionality is yet exposed as this is thus far intended to validate 177 correctness and performance. This can be disabled by setting an 178 HD_ENABLE_SCENE_INDEX_EMULATION environmental variable to "0". 179 180- Changed the return type of UsdImagingDelegate::Get() for the point instancer 181 "rotate" attribute from GfVec4f (quaternion layout of <real, i, j, k>) to 182 GfQuath (quaternion layout of <i, j, k, real>). This aligns with the result 183 of SamplePrimvar(). In hdStorm, the quaternion data is now transported to the 184 GPU as half-float data, instead of float. 185 All custom scene delegates supplying the instancer "rotate" primvar via the 186 Get() API must be updated for the new quaternion layout. 187 188- Added half-float vec2 and vec4 primvar support to hdStorm. 189 190- Added support to UsdImaging for new LightAPI features. 191 192- Added sprim-sprim dependency map to HdChangeTracker so it can track the 193 dependencies between lights and their light filters. 194 195- UsdImagingMeshAdapter only keeps track of geom subsets that are using the 196 materialBind family. 197 198- UsdImaging internally manages which prims to call UpdateForTime on, instead of 199 relying on hydra to maintain that list. 200 201- Extended HdxTaskController to support built-in lights for backends like 202 HdPrman. 203 204- When filtering primvars by material in UsdImagingGprimAdapter, added filtering 205 using materials bound to geom subsets. 206 207- Improved dirty list management and performance including moving to a single 208 dirty list managed by the render index. 209 210- Deleted PrimvarDescCache::Extract and GarbageCollect, and 211 UsdImagingDelegate::PostSyncCleanup. 212 213- Deleted HdRenderPass::Prepare. 214 215- Improved UsdImagingDelegate performance when editing many instances of the 216 same prototype. 217 (PR: [#1608](https://github.com/PixarAnimationStudios/USD/pull/1608)) 218 219- Updated stb_image code to latest versions, enable UTF-8 filename support for 220 Windows. 221 (PR: [#1580](https://github.com/PixarAnimationStudios/USD/pull/1580)) 222 223- Fixed sync valid repr tokens just once for Rprims. 224 225- Fixed memory leak in HioOpenVDB. 226 227- Fixed HioOpenVDB build on windows. 228 (PR: [#1574](https://github.com/PixarAnimationStudios/USD/pull/1574)) 229 230- Fixed errors when trying to read udims from .usdz files. 231 (Issue: [#1558](https://github.com/PixarAnimationStudios/USD/issues/1558)) 232 233- Fixed HdResampleRawTimeSamples() parameter bug and add test coverage. 234 (Issue: [#1549](https://github.com/PixarAnimationStudios/USD/issues/1549)) 235 236- Fixed crash when processing multiple native instancer edits in the same frame. 237 (Issue: [#1551](https://github.com/PixarAnimationStudios/USD/issues/1551)) 238 239- Fixed GprimAdapter::_AddRprim material resolution order to be consistent with 240 other functions. 241 (Issue: [#1626](https://github.com/PixarAnimationStudios/USD/issues/1626)) 242 243- Fixed to not normalize point instancer quaternions. 244 (Issue: [#1505](https://github.com/PixarAnimationStudios/USD/issues/1505)) 245 246### Storm 247- Added support for rendering meshes with geom subsets. 248 249- Added support for rendering DomeLights as a skydome. 250 (Issue: [#1385](https://github.com/PixarAnimationStudios/USD/issues/1385)) 251 252- Added support to rendering BasisCurves that don't completely cover the 253 supplied points or other primvars. 254 255- Added support for "constant shading" of basis curves wherein they're 256 unaffected by lighting. 257 258- Added support for screen-space flat normals. 259 260- Improved 1st order approximations of the basic area lights (SphereLight, 261 DiskLight, RectLight, DistantLight, and CylinderLight). 262 263- Moved barycentric coord generation to codeGen. 264 265- Consolidated edge param calculations. 266 267- Implemented IsValid() for HdStUdimTextureObject. 268 269- Sync visibility once per-Rprim sync rather than per draw item. 270 271- Even if there are zero lights, prims should still use the lighting integrator, 272 specifically the one specified by their shader key. 273 274- Moved bindless address fetch out of HdStBufferResource. 275 276- Changing the type storing the volume shader glslfx source code and material 277 params in an HdStMaterial from HdStShaderCode to struct 278 HdStMaterial::VolumeMaterialData. 279 280- When a scene delegate provides a network without volume output for a material 281 used by a volume, use the volume fallback shader. 282 283- Removed IsFragmentOnPoint() and IsFragmentOnEdge() shader methods. 284 285- Renamed HdStSurfaceShader to HdSt_MaterialNetworkShader. 286 287- Fixed domelights to respond to visibility changes. 288 289- Fixed crash when UDIM textures are missing. 290 291- Fixed to support all sizes of domelight textures. 292 293- Fixed GS smooth fvar interp for displacement 294 295- Fixed GL version test to include minor version. 296 (Issues: [#957](https://github.com/PixarAnimationStudios/USD/issues/957) and 297 [#1001](https://github.com/PixarAnimationStudios/USD/issues/1001) 298 299- Various improvements to Hgi: 300 - Moved bindless texture management to HgiGL. 301 - Exposed general and device specific capabilities. 302 - Improved staging buffer for unified memory devices. 303 - Use shaderc to compile GLSL to SPIR-V in HgiVulkan. 304 - Check buffer storage mode before blit sync in HgiMetal. 305 306### RenderMan Hydra Plugin 307- Added support for UsdPreviewSurface's displacement in HdPrman. 308 309- Added support for UsdUvTexture's "sourceColorSpace" input and fixed normal 310 mapping. 311 312- Added support for additional clip planes. 313 314- Added flipped flag to RtxHioImage plugin. 315 316- Adjusted HdPrman's fallback volume shader to match Storm's. 317 318- Introduced codeless usdRiPxr schema domain for RenderMan lights and 319 lightfilters. These are generated using usdgenschemfromsdr from rman light and 320 lightfilter args files. Note that these schemas are compatible with RenderMan 321 24.2. 322 323- Removed use of "allowPresenceWithGlass" from UsdPreviewSurfaceParameters node. 324 325- RtxHioImage can convert various texture formats to type float, so they can be 326 passed to Renderman. 327 (Issue: [#1313](https://github.com/PixarAnimationStudios/USD/issues/1313)) 328 329- Fixed HdPrman's fallback maxSamples to match the RenderMan fallback (64). 330 331### MaterialX 332- Updating the arguments passed into mx::loadLibraries to better accommodate 333 relocating the MaterialX libraries folder. 334 (Issue: [#1586](https://github.com/PixarAnimationStudios/USD/issues/1586)) 335 336## [21.08] - 2021-07-15 337 338Ar 2.0 is feature-complete as of this release. We anticipate addressing 339feedback and bug reports, deprecating Ar 1.0 and enabling Ar 2.0 by default 340for the next release, then removing Ar 1.0 entirely in the release after 341that. Developers should begin migrating to Ar 2.0 now. 342 343RenderMan 24 is now required for the RenderMan plugin as of this release. 344Support for RenderMan 23 was deprecated in 21.05 and has now been removed. 345 346### Build 347- Updated dependencies to align with VFX Reference Platform CY2019. In 348 particular, USD now requires TBB 2018 or greater. 349- Added support for Python 3.8+ on Windows. The usd-core PyPI package now 350 supports Python 3.8 and 3.9 on all platforms. 351 (PR: [#1511](https://www.github.com/PixarAnimationStudios/USD/pull/1511), 352 [#1512](https://www.github.com/PixarAnimationStudios/USD/pull/1512), 353 [#1513](https://www.github.com/PixarAnimationStudios/USD/pull/1513)) 354- Fixed build errors on ARM64 on Linux. 355 (PR: [#1453](https://www.github.com/PixarAnimationStudios/USD/pull/1453)) 356- Fixed various build errors due to missing or bad includes on gcc 11, 357 clang 11, clang 13, and for Android or emscripten. 358 (PR: [#1497](https://www.github.com/PixarAnimationStudios/USD/pull/1497), 359 [#1499](https://www.github.com/PixarAnimationStudios/USD/pull/1499), 360 [#1530](https://www.github.com/PixarAnimationStudios/USD/pull/1530), 361 Issue: [#1546](https://www.github.com/PixarAnimationStudios/USD/pull/1546)) 362- Fixed issue in build_usd.py with some versions of PySide2 on Windows. 363 (PR: [#1454](https://www.github.com/PixarAnimationStudios/USD/pull/1454)) 364 365### USD 366- Fixed bug with symbol demangling on Windows which broke some TfType alias 367 registrations. 368 (PR: [#1510](https://www.github.com/PixarAnimationStudios/USD/pull/1510)) 369- Replaced some uses of deprecated tbb::atomic with std::atomic. 370 (PR: [#1486](https://www.github.com/PixarAnimationStudios/USD/pull/1486)) 371 372- Numerous changes to the Work library to adhere to TBB thread limits set by 373 host applications. 374 (Issue: [#1368](https://www.github.com/PixarAnimationStudios/USD/pull/1368)): 375 - WorkGetConcurrencyLimit now returns tbb::this_task_arena::max_concurrency 376 - Replaced WorkArenaDispatcher and other uses of task_arena in favor of new 377 WorkWithScopedParallelism, which uses TBB's task isolation feature. 378 379- Many changes for Ar 2.0: 380 - Removed the majority of deprecated APIs, including AnchorRelativePath, 381 FetchToLocalResolvedPath, ConfigureResolverForAsset, and others. 382 - UsdStage::Refresh now calls ArResolver::RefreshContext to let resolvers 383 update any internal state. Resolvers can send a ArNotice::ResolverChanged 384 notice in that function to inform UsdStage and other listeners of any 385 changes. 386 - Added default implementations for context management and scoped 387 caching to make it easier to implement resolvers. Note that resolvers 388 that provide their own implementations must indicate this in the 389 plugInfo.json file. See ArResolver documentation for more details. 390 391- Added UTF-8 support for reading and writing asset paths. 392 (Issue: [#1443](https://www.github.com/PixarAnimationStudios/USD/pull/1443)) 393- UTF-8 sequences are now written into .usda layers without hex encoding. 394- Embedded NUL bytes are disallowed in string values in .usda layers. 395- Dynamic file formats can now be set up to use anonymous layer identifiers to 396 avoid the need for dummy resolvable assets. 397 (Issue: [#1356](https://www.github.com/PixarAnimationStudios/USD/pull/1356)) 398- Made virtual SdfFileFormat functions protected instead of private. 399 (PR: [#1519](https://www.github.com/PixarAnimationStudios/USD/pull/1519)) 400- Fixed bug where a layer would be dropped from the Sdf layer registry if its 401 identifier were changed to an existing layer's via SdfLayer::SetIdentifier. 402- Fixed SdfLayer::SetIdentifier to use same restrictions as SdfLayer::CreateNew. 403- Fixed bug where entire layer would be parsed when reading layer metadata only 404 from .usda layers via SdfLayer::OpenAsAnonymous if no such metadata existed. 405- Fixed bug with vector usage during calls to SdfLayer::TransferContent and 406 other methods that caused debug asserts on Windows. 407 (Issue: [#1501](https://www.github.com/PixarAnimationStudios/USD/pull/1501)) 408- Fixed output of PcpPrimIndex::PrintStatistics on Windows. 409 (PR: [#1480](https://www.github.com/PixarAnimationStudios/USD/pull/1480)) 410 411- Added support for "codeless" USD schemas that do not have any C++ or Python 412 code. Changes to these schemas' definitions do not require any code to be 413 recompiled; instead, the generatedSchema.usda just needs to be regenerated 414 via usdGenSchema and reinstalled. 415 416- Added usdgenschemafromsdr utility to generate schemas from Sdr nodes. 417- Added ability to specify allowed prim types for API schemas in the customData 418 dictionary for the schema in schema.usda. 419- Added UsdPrim::CanApplyAPI and CanApply to all API schema classes to check if 420 an API schema can be applied to a prim based on the restrictions above. 421- Removed deprecated instancing "master" API from UsdStage and UsdPrim. 422- Removed support for deprecated "UsdSchemaType" terminology in schemas. 423- Fixed UsdStage::ResolveIdentifierToEditTarget to be consistent with asset 424 path computations during composition. 425- Fixed bug where UsdResolveInfo / UsdAttributeQuery would be invalidated by an 426 insignificant layer stack change. 427 (Issue: [#1500](https://www.github.com/PixarAnimationStudios/USD/pull/1500)) 428- Improved change processing performance in UsdStage. In an internal test that 429 authored many attributes, runtime decreased by ~50% (from ~50s to ~25s). 430- A UsdConnectableAPIBehavior can now be set to ignore shader encapsulation 431 rules by overriding UsdConnectableAPIBehavior::RequiresEncapsulation. 432- API schemas can now provide connectability behavior, which can override 433 behavior based on prim type. 434- Deprecated UsdShadeMaterial::ComputeSurfaceSource, ComputeVolumeSource, and 435 ComputeDisplacementSource overloads taking a single token for renderContext. 436- Renamed SdfTypeIndicator to NdrSdfTypeIndicator. 437- Added initial version of UsdPhysics domain and schemas. For more details, see 438 the [proposal](https://graphics.pixar.com/usd/docs/Rigid-Body-Physics-in-USD-Proposal.html). 439 (PR: [#1424](https://www.github.com/PixarAnimationStudios/USD/pull/1424)) 440- Miscellaneous documentation fixes. 441 (PR: [#1485](https://www.github.com/PixarAnimationStudios/USD/pull/1485), 442 [#1553](https://www.github.com/PixarAnimationStudios/USD/pull/1553)) 443 444### Imaging 445- Added basic support for Hydra Commands, a mechanism to invoke actions that 446 renderers know how to perform. 447- Added support for loading OpenVDB grids via ArAsset, allowing OpenVDB files 448 to be read from within .usdz files. 449- Added support for cameras in the testing Null render delegate. 450- Added new rendertask param to disable clipping. 451- Added UsdImagingGLEngine::SetPresentationOutput to explicitly set the 452 framebuffer that AOVs are presented into. 453- Fixed buffer allocation in vboSimpleMemory Manager. 454- Fixed issue in UsdImaging that would occur when a CoordSys is bound to an 455 Xform prim with a renderable descendants. 456- Fixed resync of shaders in UsdImaging to also resync geometry bound to the 457 shader's material. 458 (Issue: [#1487](https://www.github.com/PixarAnimationStudios/USD/pull/1487)) 459- Fixed handling of edits to "purpose" in the native instance adapter in 460 UsdImaging. 461 (Issue: [#1515](https://www.github.com/PixarAnimationStudios/USD/pull/1515)) 462- Fixed unwanted export of stbImage symbols from Hio. 463 (PR: [#1498](https://www.github.com/PixarAnimationStudios/USD/pull/1498)) 464- Allow point instancer prototypes from overs in UsdImaging. 465 (PR: [#1436](https://www.github.com/PixarAnimationStudios/USD/pull/1436)) 466- Removed HdxMaterialTagTokens in favor of HdStMaterialTagTokens. 467 468### usdview 469- usdview and usdrecord now share the argument parsing facility for renderers. 470- Fixed issue where usdview would sometimes open in the background on Windows. 471 (PR: [#1537](https://www.github.com/PixarAnimationStudios/USD/pull/1537)) 472- Fixed to not error or warn in Rollover Prim Info if assetInfo has no 473 identifier entry. 474 (PR: [#1476](https://www.github.com/PixarAnimationStudios/USD/pull/1476)) 475- Fixed Qt window being displayed in usdrecord. 476 (Issue: [#1521](https://www.github.com/PixarAnimationStudios/USD/pull/1521)) 477 478### Storm 479- Added support for correct refinement of varying and face-varying primvars. 480- Added support for compute program preprocessor defines. 481- Added size validation for uniform primvars of basis curves. 482- Improved performance of volume ray marching shader. 483- Improved wireframe on surface display for adaptive tessellation. 484- Improved wireframe on surface display for uniform refinement. 485- Improved edge picking performance. 486- Improved performance and appearance of patch edge drawing. 487- Improved GPU memory usage by using a non-aggregated allocation for GPU stencil 488 table buffers. 489- Moved mesh edge handling out of the geometry shader. 490- Changed default material tag in HdxTaskController to enable alpha-to-coverage. 491- Changed behavior, when a dome light texture is invalid, issue a coding error 492 and print the file path for debugging. 493- Changed behavior, updated selection on tracker during Prepare instead of Sync. 494- Use the new texture system to bind the texture in the render pass shader. 495- Removed redundant ptexId field from patchParam. 496- Removed HdStExtCompGpuComputationBufferSource. 497- Removed remaining GS edge id shader code. 498- Removed HdStMixinShader since its usage was very limited. 499- Fixed multiple issues related to OSD drawing. 500- Fixed Ptex layout texture sampler type. 501- Fixed TCS/TES processing of primvar and drawingCoord. 502- Fixed incorrect handling of left-handed meshes. 503 (Issue: [#1075](https://www.github.com/PixarAnimationStudios/USD/pull/1075)) 504- Fixed resolution of symlinked UDIM textures. 505 (Issue: [#1329](https://www.github.com/PixarAnimationStudios/USD/pull/1329)) 506- Fixed area light approximation when transforms are animated. 507 (Issue: [#1524](https://www.github.com/PixarAnimationStudios/USD/pull/1524)) 508 509- Various improvements to Hgi: 510 - Added 1D texture array upload support in HgiMetal. 511 - Added 16-bit signed integer data formats. 512 - Added buffer binding support for Hgi shader codegen. 513 - Added codeGen for compute shader invocation ID. 514 - Added HgiShaderFunctionDesc creation path to HdStGLSLProgram. 515 - Moved Storm compute functions to Hgi shader generation. 516 - Removed now unnecessary restoration of framebuffer in HgiGLScopedStateHolder 517 and HgiInteropOpenGL. 518 - Converted primvar refinement to Hgi compute shaders. 519 520### RenderMan Hydra Plugin 521- Updated RenderMan version required by HdPrman to 24. 522- Unified HdPrman & HdxPrman into HdPrman. 523- Added basic support to optionally use MaterialX networks. (see below) 524 525### Alembic Plugin 526- Changed default number of threads used for reading Ogawa-backed files from 527 4 to 1. This may be changed with the `USD_ABC_NUM_OGAWA_STREAMS` env var. 528 529### MaterialX Plugin 530- Added support for reading MaterialX documents within .usdz files 531 when Ar 2.0 is enabled. 532- Imaging support: 533 - Moved the code common to both Storm and HdPrman into imaging/hdMtlx. 534 - Allow the output of a nodegraph to be used multiple times. 535 (Issue: [#1489](https://www.github.com/PixarAnimationStudios/USD/pull/1489)) 536 - Update _GetMxNodeType to use MaterialX functions to support arbitrary node 537 types not just UsdPreviewSurface and StandardSurface. 538 (Issue [#1538](https://www.github.com/PixarAnimationStudios/USD/pull/1538)) 539 - Fixed issue with incorrect paths for finding nodes. 540 (Issue: [#1488](https://www.github.com/PixarAnimationStudios/USD/pull/1488)) 541 - (Storm support) Added support for different primvar texture coordinate 542 names to be passed down through the mtlx file. 543 - (Storm support) Added support for textures to be used anywhere within the 544 connected nodegraph instead of just as inputs for the material properties. 545 - (Storm support) Added basic support for transparent MaterialX materials 546 making sure the proper material tag is set. 547 - (HdPrman support) Added basic support to use MaterialX networks. 548 - (HdPrman support) Updated StandardSurface adapter node to pass the normal 549 to PxrSurface for the bumpNormal. 550 551### Security 552- Fixed [CVE-2020-13520](https://talosintelligence.com/vulnerability_reports/TALOS-2020-1120) 553- Fixed [CVE-2020-13531](https://talosintelligence.com/vulnerability_reports/TALOS-2020-1145) 554 555## [21.05] - 2021-04-12 556 557### Build 558- Removed unnecessary check for Python executable in build_usd.py. 559 (Issue: [#1414](https://www.github.com/PixarAnimationStudios/USD/issues/1414), 560 PR: [#1464](https://www.github.com/PixarAnimationStudios/USD/pull/1464)) 561- Updated build_usd.py to use MaterialX v1.38.0 and unified the MaterialX plugin 562 and imaging build options PXR_BUILD_MATERIALX_PLUGIN and 563 PXR_ENABLE_MATERIALX_IMAGING_SUPPORT into PXR_ENABLE_MATERIALX_SUPPORT. 564- Exposed version numbers in pxrConfig.cmake for CMake client projects. 565- Updated CHANGELOG.md to include links to pull requests and issues. 566 (Issue: [#1362](https://www.github.com/PixarAnimationStudios/USD/issues/1362)) 567- Fixed linking errors by removing extern C linkage from LZ4 symbols, to avoid 568 collisions with other libraries embedding LZ4. 569 (Issue: [#1447](https://www.github.com/PixarAnimationStudios/USD/issues/1447)) 570- Updated VERSIONS.md to include Linux, Windows and MacOS versions used for 571 testing. Note that Windows and MacOS should still be considered experimental. 572 (PR: [#1393](https://www.github.com/PixarAnimationStudios/USD/pull/1393)) 573 574### USD 575- Added UsdUtils.UpdateSchemaWithSdrNode functionality for creating or updating 576 a schema.usda from specially curated sdrShaderNode and sdrShaderProperty 577 metadata. 578- Updated usdGenSchema to not error when generating a dynamic schema and 579 libraryPath is not specified. 580- The default 'USD' SdrShaderNodes generated from UsdLuxLightFilter types now 581 have the context of "lightFilter" like other light filter shader nodes. 582- Fixed bug where the registered URI resolver would not be invoked for a URI 583 asset path if it was shorter than the longest registered URI schema. 584- The template asset path field for value clips now supports Sdf file format 585 arguments. 586 (PR: [#1450](https://www.github.com/PixarAnimationStudios/USD/pull/1450)) 587- SdfLayer::ListFields now includes "required fields" for each spec type. 588- A collection of fixes and tests for Windows path handling, especially 589 involving symlinks. 590 (PR: [#1441](https://www.github.com/PixarAnimationStudios/USD/pull/1441), 591 [#1465](https://www.github.com/PixarAnimationStudios/USD/pull/1465), 592 [#1468](https://www.github.com/PixarAnimationStudios/USD/pull/1468), 593 Issues: [#1440](https://www.github.com/PixarAnimationStudios/USD/issues/1440)) 594- Fixed usdGenSchema to honor apiName metadata for auto generated tokens.h. This 595 results in correct doxygen documentation for the correct API names. 596- UsdUtilsStitchClips now creates a separate manifest layer instead of using the 597 topology layer as the manifest layer. This is because the topology layer can 598 contain attributes that actually don't have any time samples in clips. 599 (Issue: [#1344](https://www.github.com/PixarAnimationStudios/USD/issues/1344)) 600- Added documentation for built-in and auto-applied API schemas. 601- Added additional plugInfo mechanism (via AutoApplyAPISchemas metadata) to 602 define auto apply API schemas, to allow context/site specific auto application 603 of API schemas. 604- Added FlattenTo function to UsdPrimDefinition to copy the contents of a prim 605 definition into a prim spec on a layer. 606- Updated UsdShadeConnectableAPI::Get{Inputs,Outputs} to only return authored 607 inputs/outputs by default. Optional onlyAuthored=false argument can be passed 608 to explicitly include Builtins. Results in performance improvement at code 609 sites like UsdShadeShaderDefUtils. 610- UsdLux Shadow and Shaping APIs are now connectable. All attributes on these 611 APIs have been given the "inputs:" prefix. 612- Adding support for identifier aliases in Ndr/Sdr. This allows NdrRegistry to 613 use these aliases to find the node through the GetNodeByIdentifierAPIs when 614 there are no appropriate nodes that exactly match the identifier being 615 searched for. 616- Performance improvement in terminal resolution in UsdShade. Introduced a 617 `shaderOutputOnly` flag on the GetValueProducingAttributes function, this 618 allows us to get only the type of connections we want and avoid the cost of 619 the extra checks. 620- Updated NdrRegistry::GetNodeFromAsset() to use asset name and extension as the 621 node name instead of the identifier. Note that node name is not expected to be 622 unique for a NdrNode. 623- Fixed a pcp change processing bug where we did not consider layers with 624 replaced content significant wrt layer stacks that use the layer. 625 (Issue: [#1407](https://www.github.com/PixarAnimationStudios/USD/issues/1407)) 626- Removed UsdShadeConnectableAPI implicit constructors from UsdShadeShader and 627 UsdShadeNodeGraph to enforce independence of connectability concept from 628 shader graphs. Callers are required to convert these explicitly now, which can 629 be done via the ConnectableAPI() method on Shader and NodeGraph. 630- Updated connectability rules in UsdShadeConnectableAPIBehavior to improve 631 encapsulation. Refer to the UsdShade documentation for details on 632 connectability rules. 633- usdGenSchema now adds a type alias for abstract typed schemas, which means 634 abstract typed schemas now have an official USD type name which is registered 635 with the UsdSchemaRegistry. 636- Auto apply API schemas in USD can now specify abstract typed schemas to auto 637 apply to, indicating that the API should be applied to all schemas that derive 638 from the abstract schema type. 639- Removed deprecated UsdConnectableAPI::IsShader() and IsNodeGraph() APIs. 640- Fixed performance regression in UsdStage change processing when applying an 641 API schema. 642- Make OSL parser for Sdr more robust to dynamic array type names. 643- Backwards compatibility for the deprecated "UsdSchemaType" terminology will be 644 removed in the next release. Schemas that have not been updated since v21.02 645 must be regenerated to avoid breakage in the next release. 646 647 648### Imaging 649- Added SampleIndexedPrimvar() and GetIndexedPrimvar() scene delegate API to 650 allow users to access unflattened primvars and their indices. 651- Added support for time-sampled computed primvars in the scene delegate API 652 (including an UsdImaging implementation for Skel). 653 (PR: [#1455](https://www.github.com/PixarAnimationStudios/USD/pull/1455)) 654- Added GetInstancerPrototypes() scene delegate API to return prim paths that 655 are prototypes of an instancer. 656- Added support for GetMaterialResource() to the lightAdapter and 657 lightFilterAdapter classes so the usdImaging scene delegate can provide 658 HdMaterialNetworks for lights and filters. 659- Added imaging adapters for UsdLuxPluginLight and UsdLuxPluginLightFilter. 660- Added optimization when checking primvar existence, use Get() instead of 661 ComputeFlattened(). 662- Renamed render delegate API GetMaterialNetworkSelector() to 663 GetMaterialRenderContexts() to allow for multiple material render contexts. 664- Moved version tracking of batches from HdChangeTracker to Storm’s render 665 delegate. 666- Moved garbage collection API to Storm’s render delegate. 667- Refactored the free camera code in HdxTaskController::_Delegate into its own 668 HdxFreeCameraSceneDelegate. 669- Removed obsolete HdTexture bprim. 670- Various improvements to Hio: 671 - Refactored reading of HioImage and the conversion to an HgiFormat into 672 common functionality. 673 - Moved volume field texture loading out of Glf. Volume data is loaded via a 674 plugin point (hioOpenVDB) in HioFieldTextureData. 675 - Replaced GlfGetNumElements(HioFormat) and GlfGetElementSize(HioFormat) with 676 equivalent functions in Hio. 677 - The HioOIIO OpenImageIO plugin supports format conversion when loading 678 image data, so we specify the target format in the destination image spec. 679 - As the transition to Hio (and our new texture system) continues to move 680 forward, we are now removing many entry points in Glf. 681- Fixed crash on Hydra update when a prototype primitive is removed (deleted or 682 deactivated) in the same update cycle where an inheritable primvar is added or 683 changed to an ancestor of the prototype that used to exist. 684 (PR: [#1418](https://www.github.com/PixarAnimationStudios/USD/pull/1418), 685 Issue: [#1417](https://www.github.com/PixarAnimationStudios/USD/issues/1417)) 686- Fixed skip creating unsupported AOVs in the task controller. 687 (Issue: [#1215](https://www.github.com/PixarAnimationStudios/USD/issues/1215)) 688- Fixed non-color AOV visualization. 689 (Issue: [#1437](https://www.github.com/PixarAnimationStudios/USD/issues/1437)) 690- Fixed material binding improvements for point instancer prototypes. 691 (Issue: [#1449](https://www.github.com/PixarAnimationStudios/USD/issues/1449)) 692- Fixed instance highlighting for native instances when the selected instance is 693 invisible. 694 (Issue: [#1461](https://www.github.com/PixarAnimationStudios/USD/issues/1461)) 695- Fixed PointInstancerAdapter Get() to properly call the fallback if it can't 696 find the requested key. 697 (Issue: [#1439](https://www.github.com/PixarAnimationStudios/USD/issues/1439)) 698 699### Storm 700- Added filtering of instancer primvar bindings. 701- Added shader configurations, mixins and a new material tag 702 'translucentToSelection' to enable occluded selection to show through. 703- Added HdRenderPassState API to enable/disable the depth test. 704- Added better support for a color mask to be specified per color attachment 705 rather than use the same mask for all attachments. 706- Added SetPresentationOutput() API specifies the framebuffer the present task 707 will write the AOVs into. 708- Added casts to avoid GLSL compile errors when enabling 709 HD_ENABLE_DOUBLE_MATRIX and using the volume raymarcher. 710- Added GlfAnySharedGLContextScopeHolder that is a conditional 711 GlfSharedGLContextScopeHolder only switching the shared context if there is no 712 current valid context. 713- Added number of texture objects and handles to 714 HdStResourceRegistry::GetResourceAllocation. 715- Changed Ptex layout texture format in order to improve compatibility on 716 platforms which don't support 3-component textures. 717- Disabled bindless textures while we investigate unexpected performance 718 regressions related to switching context and bindless. 719- Optimization to bail out early for Storm tasks that have no work. 720- Avoid invalidation in the renderpass shader when processing buffer binding 721 requests. 722- Refactored basis curves points primvar processing such that it uses 723 HdSt_BasisCurvesPrimvarInterpolaterComputation. 724- Fixed to trigger draw item gather when material tag changes 725- Fixed HgiBufferDesc byteSize calculations to avoid reading beyond initialized 726 data when creating buffer objects. 727- Renamed renderPassShader.glslfx to renderPassColorShader.glslfx to clarify its 728 intent. 729- Renamed rprimUtils to primUtils to reduce code duplication. 730- Removed unused mixin option to discard unselected fragments. 731- Removed Bind/Unbind HdRenderPassState API 732- Removed GlfHasLegacyGraphics - use GlfContextCaps instead. 733- Removed render pass state override shader. 734- Various improvements to Hgi: 735 - Added support to pass an external framebuffer to HgiInterop. 736 - Renamed HgiMipInfo::byteSize to HgiMipInfo::byteSizePerLayer for 737 clarification. 738 - Moved HgiShaderSection::WriteAttributeToIndex to HgiMetalShaderSection. 739 - Unified how attributes are stored across GL, Metal and Vulkan. 740 - Fixed resolve op to transfer data from/to all attachments. 741 - Fixed a potential bug where the wrong size was computed for a compressed 742 array texture. 743 - Fixed code generation for unsigned and signed integer textures. 744 - Fixed redundant depth buffer resolve and ensure that in the absence of 745 color attachments, it still gets resolved. 746 - Fixed Metal error related to resource lifetime. 747 748### RenderMan Hydra Plugin 749- Updated RenderMan version required by hdPrman to 23.5. 750- NOTE: The USD release following the RenderMan 24 release will increase the 751 required version once more to 24.0. In other words, this will likely be the 752 last USD release with hdPrman support for RenderMan 23.x. 753- Made the rman args parser map `bxdf` types inputs to the Sdr `terminal` type. 754- Finishing work to support fieldDataType and vectorDataRoleHint for UsdVol 755 prims in hdPrman. 756 757 758### MaterialX Support 759- Minimum of MaterialX v1.38 is now required. 760- MaterialX support in Storm: 761 - Added basic support for textures. 762 - Added basic support for direct lights. 763 - Added a Mtlx render context, which gets consumed by Storm’s render 764 delegate. 765 - Register MaterialX nodes as having "mtlx" source type and allow Storm’s 766 material network to accept both glslfx and mtlx sourcetypes. 767 - Changed the MaterialX option from FIS to Specular Environment Prefilter. 768 - Fixed u_envMatrix calculation to account for y-up/z-up/domelight 769 transform. 770- Various improvements to the usdMtlx plugin: 771 - Record "geomprop" references from materialx into Sdr's "primvars" 772 metadata. This lets clients query which primvars the material wants access 773 to (for purposes such as primvar filtering). 774 - No longer copying default values on shader inputs to each USD shader 775 definition to improve performance and keep it more consistent with other 776 UsdShade constructs. 777 - Removed deprecated references to shaderref, Color2. 778 - Fixed a crash in UsdMtlx when reading mtlx nodes that use a MaterialX 779 standard shader nodedef. 780 781### usdview 782- Fixed a bug where we weren't updating for changes that affect the entire 783 stage. 784 (Issue: [#1407](https://www.github.com/PixarAnimationStudios/USD/issues/1407)) 785- Improved testusdview error reporting 786 (PR: [#1416](https://www.github.com/PixarAnimationStudios/USD/pull/1416)) 787 788## [21.02] - 2021-01-18 789 790### Build 791- Added build and packaging scripts for PyPI packages. Thanks to Nvidia for 792 their work on this project! 793- Updated documentation build to fix several issues and no longer require 794 Python. (Issue: [#718](https://www.github.com/PixarAnimationStudios/USD/issues/718)) 795- GLEW is no longer required for building imaging components. 796 797- Various fixes and changes to build_usd.py: 798 - Fixed command-line args not being respected for OpenVDB. 799 (PR: [#1406](https://www.github.com/PixarAnimationStudios/USD/pull/1406)) 800 - Updated boost to 1.70 on macOS for both Python 2 and 3. 801 (Issue: [#1369](https://www.github.com/PixarAnimationStudios/USD/issues/1369)) 802 - Updated MaterialX to 1.37.3 with shared libraries on Linux. 803 804- Fixed various linking issues with OpenEXR. 805 (PR: [#1398](https://www.github.com/PixarAnimationStudios/USD/pull/1398)) 806 807### USD 808- Allow setting malloc hook functions if they were previously set to malloc/etc. 809- Fixed handling of symbolic links and mount points on Windows. 810 (PR: [#1378](https://www.github.com/PixarAnimationStudios/USD/pull/1378)) 811- Fixed incorrect handling of non-existent variables in TfEnvSetting in Python. 812- Updated GfRect2i API to use function and argument names that are agnostic 813 to the direction of the Y axis. 814- Updated ilmbase half embedded in Gf to OpenEXR v2.5.3. 815 (Issue: [#1354](https://www.github.com/PixarAnimationStudios/USD/issues/1354)) 816- Added VtArray::AsConst, cfront, and cback methods to help avoid inadvertent 817 copy-on-writes and thread-safety issues. 818 819- Fixes for variety of issues with VtArray conversions in Python, including 820 conversion from Python sequences if all elements are convertible and a 821 bug with inadvertent copy-on-writes. 822 (Issue: [#1138](https://www.github.com/PixarAnimationStudios/USD/issues/1138)) 823 824- Initial implementation of Ar 2.0. This includes new features like support 825 for URI resolvers and many changes to the ArResolver interface. For more 826 details see https://graphics.pixar.com/usd/docs/668045551.html. 827 828 Work on Ar 2.0 is not yet complete and will continue through the next few 829 releases. Ar 2.0 is disabled by default but can be enabled for preview and 830 initial testing by specifying `PXR_USE_AR_2=ON` when running CMake. 831 832- Moved SdfFindOrOpenRelativeToLayer to SdfLayer::FindOrOpenRelativeToLayer. 833- Fixed SdfLayer::FindRelativeToLayer to use the same anchoring logic as 834 SdfLayer::FindOrOpenRelativeToLayer. 835- Fixed string encoding issue in .usda file writer. 836 (Issue: [#1331](https://www.github.com/PixarAnimationStudios/USD/issues/1331)) 837- Improved behavior when hitting hard-coded composition graph limits in Pcp. 838- Fixed incorrect native instancing behavior with sub-root references. 839 840- Added support for auto-apply API schemas. This allows single-apply API 841 schemas to be automatically applied to prims using one of a list of 842 associated concrete schema types instead of requiring the user to manually 843 apply the API schema. 844 845- Renamed UsdSchemaType to UsdSchemaKind to disambiguate between the schema 846 type (e.g. UsdGeomSphere) and kind (e.g. non-applied, single-apply, etc). 847- Deprecated functions using the "schema type" terminology in favor of 848 "schema kind". 849- Added UsdVariantSet::BlockVariantSelection. 850 (Issue: [#1319](https://www.github.com/PixarAnimationStudios/USD/issues/1319), 851 PR: [#1340](https://www.github.com/PixarAnimationStudios/USD/pull/1340)) 852- Removed deprecated UsdAttribute::BlockConnections. 853- Removed deprecated UsdRelationship::BlockTargets. 854- Removed deprecated UsdCollectionAPI::ApplyCollection. 855- Added "container" concept to UsdShadeConnectableAPI. 856- Added support for connecting multiple sources to UsdShadeConnectableAPI. 857- Deprecated API for connecting to single sources in favor of the more 858 general multiple-source API on UsdShadeConnectableAPI. 859 860- Deprecated UsdConnectableAPI::IsShader and IsNodeGraph in favor of 861 IsContainer API. Warnings are emitted on first use unless the environment 862 setting `USD_SHADE_EMIT_CONNECTABLE_API_DEPRECATION_WARNING` is set to 0. 863 864- Updated various clients to apply the UsdShadeMaterialBindingAPI schema 865 before binding materials. 866- Fixed Python binding for UsdShade.CoordSysAPI.HasLocalBindings. 867 (PR: [#1360](https://www.github.com/PixarAnimationStudios/USD/pull/1360)) 868- Fixed Python binding for UsdSkel.SkinningQuery.ComputeExtentsPadding. 869 (Issue: [#1375](https://www.github.com/PixarAnimationStudios/USD/issues/1375)) 870- Added UsdLuxPluginLight and UsdLuxPluginLightFilter schemas that allow for 871 defining a light or light filter via an SdrShaderNode. 872- UsdLuxLight and UsdLuxLightFilter schemas now publish an associated 873 SdrShaderNode based on their built-in properties. 874- Input attributes for UsdLuxLight and UsdLuxLightFilter schemas are now 875 connectable and have been renamed to include the "inputs:" prefix. 876- Deprecated UsdLuxLightPortal schema in favor of new UsdLuxPortalLight schema. 877 878### Imaging 879- Added new GL Loading Library (GLApi) to replace GLEW. GLEW is no longer 880 required. 881- Added HioImage, removed GlfImage. 882- Added new camera framing API. Introduces the display and data window and 883 storage size to separate these concepts. Updated Storm, HdPrman, and HdEmbree. 884- Added support for normal buffers to HdxPickFromRenderBufferTask. 885- Added standard prim API to HdInstancer and HdSceneDelegate::GetInstancerId. 886- Added support for animated extents when using draw modes. 887 (PR: [#1365](https://www.github.com/PixarAnimationStudios/USD/pull/1365)) 888- Improved Hydra camera to better support physically based attributes. 889- Extended HdDisplayStyle to house more advanced selection behaviors. 890- Changed renderParams timeCode default values from Default to EarliestValue. 891- Changed UsdImagingDelegate to map HdLightTokens to the new input attribute 892 names in queries through GetLightParamValue. 893- Merged tokens textureResourceMemory into textureMemory for better performance 894 tracking. 895- Renamed UsdImagingValueCache to UsdImagingPrimvarDescCache, it only stores 896 primvar descriptors. 897- Removed implementations of deprecated HdSceneDelegate::GetTextureResource. 898- Removed HwFieldReader volume material node in favor of typed nodes. 899- Fixed bug in pick targets when resolving unique hits. 900 (Issue: [#1343](https://www.github.com/PixarAnimationStudios/USD/issues/1343)) 901- Fixed UsdSkel instance drawing at origin bug. 902 (Issue: [#1347](https://www.github.com/PixarAnimationStudios/USD/issues/1347)) 903- Fixed UsdImaging to discard coord sys bindings to non-existent xforms. 904 (Issue: [#1346](https://www.github.com/PixarAnimationStudios/USD/issues/1346)) 905- Fixed UsdSkelImagingSkeletonAdapter to forward GetMaterialId and 906 GetDoubleSided calls to skinned mesh primadapter. 907 (Issue: [#1384](https://www.github.com/PixarAnimationStudios/USD/issues/1384)) 908- Fixed an issue where UsdSkelImagingSkeletonAdapter::_RemovePrim() failed to 909 remove skeletons that did not have any bindings to skinned prims. 910 (Issue: [#1228](https://www.github.com/PixarAnimationStudios/USD/issues/1228), 911 Issue: [#1248](https://www.github.com/PixarAnimationStudios/USD/issues/1248)) 912- Fixed some display crashes after resyncing skeletons. 913 (PR: [#1397](https://www.github.com/PixarAnimationStudios/USD/pull/1397)) 914- Fixed dome light preview surface. 915 (PR: [#1392](https://www.github.com/PixarAnimationStudios/USD/pull/1392)) 916- Fixed links to OpenEXR for Alembic and OpenImageIO plugins. 917 (PR: [#1398](https://www.github.com/PixarAnimationStudios/USD/pull/1398)) 918 919### Storm 920- Added support for varying interpolation of any basis curves primvar. 921 (Issue: [#1308](https://www.github.com/PixarAnimationStudios/USD/issues/1308)) 922- Added support for HdStResourceRegistry::ReloadResource to allow clients to 923 explicitly force textures to be reloaded by file path. 924 (Issue: [#1352](https://www.github.com/PixarAnimationStudios/USD/issues/1352)) 925- Added a new HdMaterialNetwork2 to combine (and then replace) 926 HdStMaterialNetwork and MatFiltNetwork. 927- Added step to convert 3 channel textures to 4 channel to support Hgi backends 928 with 4 channel requirements. 929- Added Resize() to barContainer. 930- Added fieldTextureMemory render setting to specify the target memory of 931 volume textures. 932- Added experimental MaterialXFilter to process a material network and convert 933 it into a MaterialX network. Also, added a first pass on a MaterialX 934 shadergen. 935- Enabled bindless textures by default. 936- Several improvements to volume rendering including a step size relative to the 937 sample distance so that the quality of the rendered volume does not depend on 938 the scale. 939- Optimized HdStRenderBuffer performance by only allocating when the descriptor 940 changes. 941- Optimized computations by avoiding copying the compute kernel for GPU 942 computations. 943- Refactored face culling to remove fragment shader discards when possible. 944- Refactored geometric shaders such that only prims with the "masked" material 945 tag can use alpha threshold based discards. 946- Switched Storm over to using the "translucent" material tag rather than 947 "additive" as the default translucency state. 948- Fixed handling of valid to invalid BAR transitions due to Scene graph 949 operations on primvars or primvar filtering. 950 (Issue: [#1182](https://www.github.com/PixarAnimationStudios/USD/issues/1182)) 951- Fixed GPU memory leak of certain buffers never getting garbage collected. 952- Fixed fullscreen pass to preserve alpha. 953- Removed instance primvar filtering. 954- Various improvements to Hgi : 955 - Added initial version of the Hgi codegen to be able to produce 956 GLSL/MetalSL/others from glslfx. 957 - Added the first push of our experimental, incomplete, HgiVulkan backend, 958 which does not yet build by default. 959 - Added memory barriers to Hgi. 960 - Added CopyTextureToBuffer and CopyBufferToTexture to HgiBlitCmds. 961 - Added 2D_ARRAY support to Hgi. 962 - Moved Ptex and Udim loading from Glf to Hgi and Storm. 963 - Added UINT16 format as prep work for Ptex support. 964 - Fixed obj-c autorelease issue, and simplification of secondary command 965 buffer in HgiMetal compute encoder. 966 - Fixed HgiTexture::GetByteSizeOfResource to take the mip levels into account. 967 - Fixed for missing include. 968 (PR: [#1359](https://www.github.com/PixarAnimationStudios/USD/pull/1359)) 969 970### usdview 971- Fixed StageView.pickObject when doubles are small or out of image-bounds. 972 (PR: [#1296](https://www.github.com/PixarAnimationStudios/USD/pull/1296)) 973 974### MaterialX Plugin 975- Removed deprecated support for MaterialX 1.36. 976 977### Embree Hydra Plugin 978- Added support for new camera framing API and HdCamera API. 979 980### RenderMan Hydra Plugin 981- Bumped version requirement to RenderMan 23.5 or greater. 982- Improved calculation of vertex, varying, and face-varying primvar counts in 983 BasisCurves to better match RenderMan. 984- Added support for new camera framing API and HdCamera API. 985- Added support for material node int array inputs. 986 (Issue: [#1294](https://www.github.com/PixarAnimationStudios/USD/issues/1294)) 987- Fixed issue that caused parameters from a shader to be incorrectly carried 988 over to the next shader that was parsed. 989 (Issue: [#1396](https://www.github.com/PixarAnimationStudios/USD/issues/1396)) 990 991## [20.11] - 2020-10-14 992 993### Build 994- Updated CMakeLists.txt to conform to recommended practice. 995 (Issue: [#1241](https://www.github.com/PixarAnimationStudios/USD/issues/1241)) 996- The build system now sets `Boost_NO_BOOST_CMAKE=ON` by default to 997 work around issues with boost's cmake files. 998 (Issue: [#1255](https://www.github.com/PixarAnimationStudios/USD/issues/1255)) 999 1000- Various fixes and changes to build_usd.py: 1001 - Added `--toolset` option for specifying CMake toolset. 1002 (PR: [#1325](https://www.github.com/PixarAnimationStudios/USD/pull/1325)) 1003 - Added `--prefer-safety-over-speed` and `--prefer-speed-over-safety` 1004 options. See below for more details. 1005 - Fixed issue with building libTIFF with Xcode 12. 1006 (PR: [#1315](https://www.github.com/PixarAnimationStudios/USD/pull/1315)) 1007 1008### USD 1009- Fixed incorrect underlying container type for TfHashMultiMap. 1010 (PR: [#1281](https://www.github.com/PixarAnimationStudios/USD/pull/1281)) 1011- Fixed invalid conversions of Gf containers like GfVec3f in Python. Note this 1012 issue is still present in Python 3. 1013 (Issue: [#1290](https://www.github.com/PixarAnimationStudios/USD/issues/1290)) 1014- Fixed various tests to accommodate `PXR_OVERRIDE_PLUGINPATH_NAME`. 1015(PR: [#1275](https://www.github.com/PixarAnimationStudios/USD/pull/1275)) 1016 1017- Added GetExternalAssetDependencies to SdfLayer and SdfFileFormat to allow 1018 file format plugins to declare additional dependencies that determine when 1019 a layer produced from that file format should be reloaded. 1020 1021- Reduced memory usage from SdfPath::GetString and added SdfPath::GetAsString 1022 and SdfPath::GetAsToken to avoid populating internal caches. 1023 (Issue: [#1287](https://www.github.com/PixarAnimationStudios/USD/issues/1287)) 1024 1025- Various fixes to composition behavior: 1026 - Fixed issues with sub-root references, payloads, and inherits, and 1027 ancestral variant selections. 1028 - Fixed issue with payloads on ancestors of sub-root references/payloads. 1029 - Fixed issue with combinations of root, sub-root, and ancestral inherits. 1030 1031- Fixed bug in .usda file writer that could cause data corruption. 1032 (Issue: [#1331](https://www.github.com/PixarAnimationStudios/USD/issues/1331)) 1033- Fixed performance issue when writing many relationship targets or attribute 1034 connections to .usdc files. 1035 (Issue: [#1345](https://www.github.com/PixarAnimationStudios/USD/issues/1345)) 1036 1037- Improved performance for certain queries with .usdc files. In one example, 1038 this decreased draw times in usdview after transform changes by ~90%. 1039 (Issue: [#1300](https://www.github.com/PixarAnimationStudios/USD/issues/1300)) 1040 1041- New .usdc files now default to version 0.8.0. These files cannot be read in 1042 USD releases prior to v19.03. Users can revert to writing older versions by 1043 setting the environment variable `USD_WRITE_NEW_USDC_FILES_AS_VERSION` to an 1044 older version. 1045 1046- Added safety checks to guard against reading malformed .usdc files. These 1047 checks may negatively impact performance and may be disabled by specifying 1048 `PXR_PREFER_SAFETY_OVER_SPEED=OFF` when running CMake or 1049 `--prefer-speed-over-safety` with build_usd.py. 1050 1051- Native instancing "master" prims are now referred to as "prototype" prims. 1052 The generated paths of prototype prims has been changed from /__Master_<X> 1053 to /__Prototype_<X>. Clients can use new UsdPrim::IsPrototypePath and 1054 UsdPrim::IsPathInPrototype API to determine if a given path is related 1055 to a prototype. 1056 1057 UsdStage and UsdPrim API using "master" terminology like UsdPrim::GetMaster 1058 and UsdStage::GetMasters have been deprecated and will be removed in a future 1059 release. 1060 1061- Added Get/Set/ClearChildrenReorder to UsdPrim for reordering prim children. 1062- UsdProperty::FlattenTo now allows flattening properties across stages. 1063- Deprecated UsdRelationship::BlockTargets and UsdAttribute::BlockConnections. 1064 Clients should use SetTargets({}) and SetConnections({}) instead. 1065- Changed UsdRelationship::GetTargets and UsdAttribute::GetConnections to return 1066 false when HasAuthored would return false. 1067- Fixed bug where UsdFlattenLayerStack was not applying the asset path 1068 resolution callback to asset paths in `clips` metadata. 1069 (PR: [#1266](https://www.github.com/PixarAnimationStudios/USD/pull/1266)) 1070- Added UsdNotice::LayerMutingChanged notice. 1071 (Issue: [#676](https://www.github.com/PixarAnimationStudios/USD/issues/676)) 1072- Fixed resource leak with Usd.PrimCompositionQuery in Python. 1073 (PR: [#1297](https://www.github.com/PixarAnimationStudios/USD/pull/1297)) 1074- Fixed crashes when printing expired Sdf.Layer and Usd.Stage objects in 1075 Python. (PR: [#1012](https://www.github.com/PixarAnimationStudios/USD/pull/1012)) 1076- Removed `isPrivateApply` functionality from schema generation. 1077- Fixed error in UsdUtilsComputeAllDependencies when an invalid 1078 templateAssetPath value is specified. 1079 (PR: [#1289](https://www.github.com/PixarAnimationStudios/USD/pull/1289)) 1080- Improved UsdUtilsGetPrimaryUVSetName and UsdUtilsGetPrefName. 1081 (PR: [#1283](https://www.github.com/PixarAnimationStudios/USD/pull/1283)) 1082- Fixed bug in UsdUtilsStitchClips that led to inconsistent stitched results. 1083 1084- Added CanContainPropertyName to UsdCollectionAPI, UsdGeomPrimvars, 1085 UsdShadeMaterialBindingAPI, and UsdShadeCoordSysAPI for checking if a 1086 property name is valid for these schemas. 1087 1088- Deprecated UsdCollectionAPI::ApplyCollection in favor of Apply. 1089- Added fallback values for texture card attributes on UsdGeomModelAPI schema. 1090- Added exposure control to UsdGeomCamera. 1091- Added ease-of-use API to UsdGeom primitives for querying the size of primary 1092 geometric properties (e.g. UsdGeomMesh::GetFaceCount). 1093- Fixed plugin extent computations for primitives in UsdGeom to respect 1094 given timecode parameter. 1095 (PR: [#1284](https://www.github.com/PixarAnimationStudios/USD/pull/1284)) 1096- Fixed crash in UsdGeomSubset::GetUnassignedIndices when a given subset had 1097 negative indices. 1098 (Issue: [#1227](https://www.github.com/PixarAnimationStudios/USD/issues/1227)) 1099- Added UsdShadeNodeDefAPI schema to represent connectable nodes in a graph. 1100 UsdShadeShader has been modified to build off of this schema. 1101- Added UsdShadeConnectableAPIBehavior to allow plugins to customize 1102 connectability by prim type. 1103- Added API to retrieve material outputs for standard terminals in all 1104 render contexts on UsdShadeMaterial. 1105- Added more instancing support to UsdSkel. 1106 (PR: [#1258](https://www.github.com/PixarAnimationStudios/USD/pull/1258)) 1107- Updated UsdVol FieldAsset schemas. 1108- Various documentation fixes. 1109 (Issue: [#1162](https://www.github.com/PixarAnimationStudios/USD/issues/1162), 1110 PR: [#1335](https://www.github.com/PixarAnimationStudios/USD/pull/1335)) 1111 1112### Imaging 1113- Added new "sourceColorSpace" input to UsdUVTexture with values "raw", "sRGB", 1114 and "auto" for better control of with which color space a texture is read. 1115- Added ability to use mip maps authored in a file in the new texture system in 1116 Storm. 1117- Added UsdImagingPrimAdapter::ShouldIgnoreNativeInstanceSubtrees() to allow 1118 adapters to disable instancing of itself and its descendants. 1119- Added pre-multiply alpha functionality for UDIM textures. Also added sRGB 1120 internal formats for UDIMs. 1121- Added checks in HioGlslfxConfig to make sure the default value for an 1122 attribute and its type match. 1123- Added HdEngine::ClearTaskContextData() to avoid the task context to hold on to 1124 resources that are about to become invalid as the render delegate is destroyed. 1125- Added HDST_DUMP_FAILING_SHADER_SOURCEFILE debug flag to facilitate shader 1126 debugging. 1127- Added texture filepath resolution for symlinks. 1128- Added an "outHitNormal" parameter to UsdImagingGLEngine::TestIntersection(). 1129- Added ReloadResource in Storm which reloads shader files when they change. 1130 1131- Improvements to Hgi: 1132 - Added Draw, DrawIndirect and DrawIndexedIndirect to Hgi and backends. 1133 - Added tracking of HgiCmds submission to ensure they only get submitted once. 1134 - Added TextureCpuToGpu copy on BlitCmd, and CopyBufferGpuToCpu to read back 1135 the GPU frustum cull results. 1136 - Added guarantees that HgiGLInterop will restore GL state after interop. 1137 - Added guarantees that Hgi GPU-GPU sync between SubmitCmds calls. 1138 - Added TextureView to Hgi and convert domelight to use Hgi compute and 1139 texture views. 1140 - Added staging buffer in Hgi to reduce the amount of times small amounts of 1141 data are copied into the same GPU buffer. 1142 - Added HgiPrimitiveType, and added HgiSampleCount on HgiPipelineDesc. 1143 - Added support for BC texture compression. 1144 - Added component mapping to HgiTextureDesc and implementations for GL and 1145 Metal. 1146 - Added ability to share HgiCmds objects in Storm. 1147 - Added optional wait behavior for command submission in Hgi. 1148 1149- Changed GLenum usage in GlfBaseTextureData and others to use new HioFormat. 1150- Changed Storm's frustum culling to be done via a vertex shader without a 1151 fragment shader. 1152- Changed HdxShadowTask to specify that it should only render opaque and masked 1153 materials. 1154- Changed cards UVs from face-varying to vertex interpolated. 1155- Changed to GL_SAMPLE_ALPHA_TO_ONE when using alpha to coverage, the alpha 1156 computed after the framebuffer resolve is more meaningful. 1157- Changed texture cards to require prims with UsdGeomModelAPI schema applied. 1158- Changed type of UsdPrimvarReader.varname input from token to string. 1159- Renamed various HdSt*GL classes to just HdSt*, this is part of the transition 1160 of Storm to support multiple rendering APIs. 1161- Enabled bindless shadow maps by default in Storm. 1162- On first material sync in Storm, now we try to batch prims with identical 1163 textures together. 1164- HdStDrawTarget's preferred mechanism are AOVs not GlfDrawTarget's. This change 1165 allows us to remove all GlfDrawTarget support from HdStDrawTarget. 1166- Since HdStDrawTarget's no longer rely on the resolve task, removing code to 1167 communicate the draw target task render passes to the resolve task. 1168- Deprecated HdSceneDelegate::GetTextureResource and will eventually be removed. 1169- An application can now disable the PresentTask in hdx task controller. 1170- When imaging basis curves, treat empty normals array the same as missing 1171 normals (i.e. draw as tube and not ribbon at higher complexities). 1172- Store HgiResourceBindings and HgiPipeline objects on HdSt resource registry. 1173- Switched (most of) the GPU frustum culling code from raw GL to Hgi. 1174- With the addition of HgiMetal, all platforms we currently support (for Storm) 1175 support color correction and 16F targets. 1176- Use BufferResource for GPU frustum cull result buffer so we can use the 1177 regular buffer binding APIs. 1178- Load mipmap data in HgiMetal textures. 1179- Changed signature of HgiDataSizeOfFormat so that it can return blockWidth and 1180 blockHeight. Returning block size in bytes for compressed formats. 1181- Describe shader constants (push constants) in pipeline. 1182- Using HgiCompute in smooth normals computation, switched flat normals and 1183 quadrangulate to HgiCompute, and converted HdStExtCompGpuComputation to Hgi. 1184 1185- Removed UsdImaging value cache API for all data except primvar descriptors and 1186 instance indices. 1187- Removed unused hitMode field from HdxPickTaskContextParams. 1188- Removed UsdImagingGLEngine::InvalidateBuffers(). 1189- Removed pre-multiply alpha behavior from volume.glslfx and changed 1190 renderPass.glslfx to allow fully transparent but still emissive volumes. 1191- Removed pre-multiply alpha behavior from stb_image and make it optional via 1192 SubtextureIdentifier within the HdSt texture system. 1193- Removed support of old-style draw targets using GlfDrawTarget instead of AOVs 1194 and render buffers. 1195- Removed UsdUvTexture's rgba output, and updated the cards draw mode to now use 1196 "rgb" and "a" outputs rather than rgba. 1197- Removed ReloadAllShaders from HdEngine. 1198- Removed HD_DRAWITEM_DRAWN as it uses raw gl calls that map/unmap a buffer. 1199- Removed HgiPipelineType. We split HgiPipeline into HgiComputePipeline and 1200 HgiGraphicsPipeline a little bit ago. 1201- Removed resource bindings handle from pipeline. 1202- Removed smooth normals CPU fallback path. Since previous releases required 1203 OpenGL 4.5 for Hgi to work, OpenGL compute must always be available. 1204- Removed HdBinding::TBO. 1205- Removed the implicit barriers from Hgi and let the external client manage 1206 synchronization via SubmitCmds. 1207 1208- Fixed potential dead-lock caused by parallel loading plugins. 1209- Fixed lights to be turned off when invisible in UsdImaging. 1210- Fixed issue with UsdImagingGLEngine::TestIntersection such that it now 1211 correctly populates. Callers of this function are reminded to provide the 1212 "frame" field in UsdImagingGLRenderParams for correct and performant results. 1213- Fixed handling of computed primvar sources for meshes. 1214- Fixed normals after complexity change. 1215- Fixed HgiGL garbage collector leak when Hgi is recreated during process. 1216- Fixed HgiGL to better protect against long labels when using glObjectLabel. 1217- Fixed render settings behaviors so we test whether or not we're really 1218 changing anything before incrementing the settings version. 1219- Fixed for cycle detection in material network processing. 1220- Fixed Glf lighting resource binding. 1221- Fixed USD edit dependency tracking for cards prims. 1222 1223- Updated UsdPreviewSurface clearcoat calculations to better match expected 1224 inputs for a specular lobe in Storm, and added clearcoat component to indirect 1225 lighting calculation in Storm. 1226 (Issue: [#1307](https://www.github.com/PixarAnimationStudios/USD/issues/1307)) 1227- Added support for UsdPreviewSurface's opacityThreshold parameter in 1228 Storm. (Issue: [#990](https://www.github.com/PixarAnimationStudios/USD/issues/990)) 1229- Added support for normal mapping for UsdPreviewSurfaces in Storm. 1230 (Issue: [#701](https://www.github.com/PixarAnimationStudios/USD/issues/701)) 1231- Metallic materials should have an F0 equal to their base color in 1232 UsdPreviewSurface in Storm. 1233 (Issue: [#1174](https://www.github.com/PixarAnimationStudios/USD/issues/1174)) 1234 1235- Removed pre-multiplication behavior from OIT resolve shader. The preview 1236 surface (and other shaders) pre-multiply within the fragment shader (unless 1237 the "diffuseColor" and "opacity" params are connected to the same 1238 texture). 1239 (Issue: [#1269](https://www.github.com/PixarAnimationStudios/USD/issues/1269)) 1240 1241- Added support for UDIM texture scale and bias in Storm. 1242 (Issue: [#1129](https://www.github.com/PixarAnimationStudios/USD/issues/1129)) 1243- Converted render index to usdImaging cachePath before calling the adapter 1244 InvokeComputation method. 1245 (Issue: [#1333](https://www.github.com/PixarAnimationStudios/USD/issues/1333)) 1246- Fix draw mode adapter handling of transforms for instanced card prims. 1247 (Issue: [#1251](https://www.github.com/PixarAnimationStudios/USD/issues/1251)) 1248- _IsVarying no longer clears dirty bit and now ProcessPropertyChange is filled 1249 out to provide more efficiency. 1250 (Issue: [#1250](https://www.github.com/PixarAnimationStudios/USD/issues/1250)) 1251 1252### usdview 1253- Added 'Enable Scene Lights' option. 1254- Changed UI to use bundled Roboto and Roboto Mono fonts. 1255- Fixed build issues due to stricter checks in PySide2 5.15.1. 1256 (PR: [#1320](https://www.github.com/PixarAnimationStudios/USD/pull/1320)) 1257 1258### Alembic Plugin 1259- Alembic uv's are now converted to texCoord2f[] primvars:st. This can 1260 be disabled by setting the `USD_ABC_WRITE_UV_AS_ST_TEXCOORD2FARRAY` 1261 environment variable to 0. 1262 1263### RenderMan Plugin 1264- Fixed infinite loop in material processing. 1265- Initial implementation of exposure. 1266- Volumes can react to changes to a field prim. 1267- Fixed UsdUVTexture wrap mode support. 1268- Add support for UsdPreviewSurface's opacityThreshold param in HdPrman. 1269 (Issue: [#990](https://www.github.com/PixarAnimationStudios/USD/issues/990)) 1270- Updated UsdPreviewSurface clearcoat calculations to better match expected 1271 inputs for a specular lobe in HdPrman. 1272 (Issue: [#1307](https://www.github.com/PixarAnimationStudios/USD/issues/1307)) 1273- Metallic materials should have an F0 equal to their base color in 1274 UsdPreviewSurface in HdPrman. 1275 (Issue: [#1174](https://www.github.com/PixarAnimationStudios/USD/issues/1174)) 1276 1277### Security 1278- Fixed [CVE-2020-6147](https://nvd.nist.gov/vuln/detail/CVE-2020-6147) 1279- Fixed [CVE-2020-6148](https://nvd.nist.gov/vuln/detail/CVE-2020-6148) 1280- Fixed [CVE-2020-6149](https://nvd.nist.gov/vuln/detail/CVE-2020-6149) 1281- Fixed [CVE-2020-6150](https://nvd.nist.gov/vuln/detail/CVE-2020-6150) 1282- Fixed [CVE-2020-6156](https://nvd.nist.gov/vuln/detail/CVE-2020-6156) 1283- Fixed [CVE-2020-13493](https://nvd.nist.gov/vuln/detail/CVE-2020-13493) 1284- Fixed [CVE-2020-13524](https://nvd.nist.gov/vuln/detail/CVE-2020-13524) 1285- Fixed [CVE-2020-13498](https://nvd.nist.gov/vuln/detail/CVE-2020-13498) 1286- Fixed [CVE-2020-13497](https://nvd.nist.gov/vuln/detail/CVE-2020-13497) 1287- Fixed [CVE-2020-13496](https://nvd.nist.gov/vuln/detail/CVE-2020-13496) 1288- Fixed [CVE-2020-13494](https://nvd.nist.gov/vuln/detail/CVE-2020-13494) 1289 1290## [20.08] - 2020-07-21 1291 1292### Build 1293- The "master" branch on GitHub has been renamed "release". 1294- Improved error handling when building the RenderMan plugin. 1295 (Issue: [#1054](https://www.github.com/PixarAnimationStudios/USD/issues/1054)) 1296 1297- Various fixes and changes to build_usd.py: 1298 - Added `--tools` and `--no-tools` options. 1299 - Updated OpenImageIO (2.1.16.0) and MaterialX (1.37.1) dependencies. 1300 - Specifying `--embree` will now build the Embree library. The 1301 `--embree-location` parameter has been removed. 1302 - CMake 3.14 is now required on Windows to support boost 1.70+. 1303 - Python 3.8 on Windows now causes an error, as USD does not support 1304 this version on Windows. 1305 - Improved handling of boost build failures. 1306 - Fixed locale decoding errors. 1307 (Issue: [#1165](https://www.github.com/PixarAnimationStudios/USD/issues/1165)) 1308 - Fixed incorrect detection of Draco library. 1309 (PR: [#1239](https://www.github.com/PixarAnimationStudios/USD/pull/1239)) 1310 1311### USD 1312- Added support for "future division" in Python 2 to aid transition to Python 3. 1313 1314- Added ArResolver::CreatePathForLayer to allow users to customize behavior 1315 when writing a layer. SdfLayer now uses this method instead of creating a 1316 directory, which was not appropriate for non-filesystem uses. 1317 (Issue: [#1148](https://www.github.com/PixarAnimationStudios/USD/issues/1148)) 1318 1319- Added SdfReference::IsInternal. 1320 (PR: [#1204](https://www.github.com/PixarAnimationStudios/USD/pull/1204)) 1321- Added fallback prim types feature, allowing clients to specify alternative 1322 schemas to use if a schema can't be found. See documentation for more details. 1323- Added UsdPrim::ApplyAPI, RemoveAPI, AddAppliedSchemas, 1324 and RemoveAppliedSchemas. 1325 (Issue: [#1218](https://www.github.com/PixarAnimationStudios/USD/issues/1218)) 1326- Added Python __repr__ for generated schemas. 1327- Added methods to UsdGeomPrimvar for processing property names. 1328- Added methods to UsdGeomPrimvarsAPI for creating, removing, and blocking 1329 primvars. 1330 (Issue: [#1100](https://www.github.com/PixarAnimationStudios/USD/issues/1100)) 1331- Improved documentation for UsdVol schema domain. 1332 (PR: [#1203](https://www.github.com/PixarAnimationStudios/USD/pull/1203)) 1333- Improved documentation for UsdGeomMesh. 1334 (PR: [#1254](https://www.github.com/PixarAnimationStudios/USD/pull/1254)) 1335- Improved diagnostic messages for plugin registration and loading. 1336 1337- Plugin search paths in PXR_PLUGINPATH_NAME can now be a symlink. Paths are 1338 now processed in order to ensure plugins in earlier entries take priority 1339 over those in later entries. 1340 1341- Replaced SdrShaderNode::GetSourceURI and GetResolvedSourceURI with 1342 GetResolvedDefinitionURI and GetResolvedImplementationURI to properly 1343 represent RenderMan C++ shaders. 1344 1345- Time sample times from layers whose timeCodesPerSecond value differ from 1346 the UsdStage are now automatically scaled to match. This can be disabled 1347 by setting the PCP_DISABLE_TIME_SCALING_BY_LAYER_TCPS environment variable, 1348 but we expect to remove this in a future release. 1349 1350- Significant changes and additions to value clips functionality. See 1351 documentation for more details: 1352 - Added support for jump discontinuities in clip times metadata to encode 1353 looping behaviors. 1354 - The clip manifest is now used to determine which attributes have values 1355 in clips. The manifest will be generated in-memory at runtime if one 1356 hasn't been specified. 1357 - Value resolution will no longer fall through to weaker layers if a clip 1358 does not have values for an attribute declared in the manifest. In these 1359 cases, the value may come from the default value authored in the manifest 1360 or (optionally) be interpolated from surrounding clips. 1361 - Removed support for legacy value clips metadata. 1362 - Fixed numerous bugs, including incorrect time samples when reversing 1363 clips. (Issue: [#1116](https://www.github.com/PixarAnimationStudios/USD/issues/1116)) 1364 1365- Changed the strength ordering of entries in the apiSchemas metadata to be 1366 strongest-to-weakest, matching the ordering of references and other fields. 1367- Constructing a UsdGeom::XformOp with an invalid attribute is no longer a 1368 coding error for consistency with other schemas and objects. 1369- Deprecated many schemas in UsdRi in preparation for modernization efforts 1370 in a future release. 1371- Removed support for deprecated "hermite" and "power" basis from UsdGeomCurves. 1372- Fixed crash when removing many entries from an SdfPathTable. 1373 (PR: [#1172](https://www.github.com/PixarAnimationStudios/USD/pull/1172)) 1374- Fixed compile error due to missing virtual destructor for 1375 PcpDynamicFileFormatInterface. 1376 (PR: [#1156](https://www.github.com/PixarAnimationStudios/USD/pull/1156)) 1377- Fixed type conversions when setting metadata values using dictionaries 1378 in Python. (Issue: [#813](https://www.github.com/PixarAnimationStudios/USD/issues/813)) 1379- Fixed handling of stage metadata and session layer muting in UsdStage. 1380- Fixed UsdFlattenLayerStack to handle mismatched attribute types and 1381 time-sampled asset paths. 1382 (PR: [#1169](https://www.github.com/PixarAnimationStudios/USD/pull/1169)) 1383- Fixed undefined behavior issue with iterator comparisons. 1384 (Issue: [#1146](https://www.github.com/PixarAnimationStudios/USD/issues/1146)) 1385- Fixed regression in handling of inherited bindings in UsdSkelCache. 1386- Fixed crash in UsdSkelBakeSkinning. 1387 (PR: [#1213](https://www.github.com/PixarAnimationStudios/USD/pull/1213)) 1388 1389### Imaging 1390- Updated minimum required version of OpenGL to v4.5. 1391 1392- Added new texture system to Storm. This enables multi-threaded texture 1393 loading, uses Hgi, and frees the scene delegate from having to load 1394 textures. In a performance test using Nvidia's Attic scene, time to first 1395 image dropped by ~90%, from 115s to 10s. 1396 1397- Added first iteration of HgiMetal, a Metal-based Hgi implementation for 1398 Apple platforms. Currently, Hgi is used in several Hydra tasks to perform 1399 tasks like blitting, the goal is to slowly integrate Hgi in Storm. 1400 1401- Numerous updates to Hgi: 1402 - Added HgiInterop to exchange rendered results between GL-GL or Metal-GL. 1403 - Added HgiSampler to represent texture samplers. 1404 - Added HgiComputeCmds to issue compute commands. 1405 - Added HgiBlitCmds for mipmap generation and GPU-GPU copy. 1406 - Added SRGB format and removed unsupported 24-bit formats. 1407 - Added GetRawResource function to various resource objects to expose 1408 low-level resource handles. 1409 1410- Added garbage collection to HgiGL for proper handling of resource destruction. 1411- Added HdRendererPluginHandle, an RAII object for managing plugin lifetimes. 1412- Added HdxAovInputTask which takes HdRenderBuffer and (if needed) uploads 1413 it to the GPU as HgiTexture. 1414- Added support for down-sampling volumes in Storm. 1415- Improved performance of volumes in Storm by not re-creating the entire 1416 volume shader when fields are animated. 1417- Added support for UsdTransform2d node in Storm. 1418 (Issue: [#1207](https://www.github.com/PixarAnimationStudios/USD/issues/1207)) 1419- Added support for UsdUVTexture scale and bias in Storm. 1420 (Issue: [#1129](https://www.github.com/PixarAnimationStudios/USD/issues/1129)) 1421- Added USDIMAGINGGL_ENGINE_DEBUG_SCENE_DELEGATE_ID environment variable to 1422 specify scene delegate ID for debugging. 1423 (Issue: [#1093](https://www.github.com/PixarAnimationStudios/USD/issues/1093)) 1424- Changed default version of HdSceneDelegate::GetScenePrimPath to strip 1425 delegate ID. 1426- Replaced obsolete GL_GENERATE_MIPMAP with glGenerateMipmap. 1427 (Issue: [#1171](https://www.github.com/PixarAnimationStudios/USD/issues/1171)) 1428- Added support for uint16 type for GL textures and OpenImageIO. 1429 (PR: [#1212](https://www.github.com/PixarAnimationStudios/USD/pull/1212)) 1430- Restructured OpenImageIO support as a plugin to Glf. 1431 (PR: [#1214](https://www.github.com/PixarAnimationStudios/USD/pull/1214)) 1432- Converted common Hydra tasks (e.g. HdxColorCorrectionTask, HdxPresentTask, 1433 HdxColorizeSelectionTask) to use Hgi. 1434- Renamed HdxProgressiveTask to HdxTask. 1435- Storm now uses Hgi for buffers, shaders, and programs instead of OpenGL. 1436- HdStResourceRegistry is instantiated once per Hgi instance in Storm. 1437- Unshared computation BAR are reused when possible. 1438 (Issue: [#1083](https://www.github.com/PixarAnimationStudios/USD/issues/1083)) 1439- Improved handling of invalid cases in several areas. 1440 (PR: [#1232](https://www.github.com/PixarAnimationStudios/USD/pull/1232), 1441 PR: [#1201](https://www.github.com/PixarAnimationStudios/USD/pull/1201)) 1442- Improved performance of UsdImagingDelegate::SetTime. 1443 (Issue: [#1166](https://www.github.com/PixarAnimationStudios/USD/issues/1166)) 1444- Improved performance for displaying meshes with large numbers of geometry 1445 subsets. (PR: [#1170](https://www.github.com/PixarAnimationStudios/USD/pull/1170)) 1446- Normals are ignored on skinned meshes so they are computed post-skinning. 1447- Inherited UsdSkel bindings are now respected. 1448- Allow HdStRenderBuffer::Resolve() to change the size of the image. 1449 (PR: [#1236](https://www.github.com/PixarAnimationStudios/USD/pull/1236)) 1450- Removed "catmark" token in pxOsd in favor of "catmullClark". 1451- Removed UsdImagingGLMaterialTextureAdapter, UsdImagingGLDomeLightAdapter, 1452 GlfVdbTexture[Container], and GlfTextureContainer, which are unneeded with 1453 the new texture system. 1454- Removed unused HdxColorizeTask and HdxFullscreenShaderGL. 1455- Removed HdWrapLegacyClamp, which corresponded to the deprecated GL_CLAMP. 1456- Removed uses of HdStGLSLProgram as part of a new strategy to create these 1457 via HdStResourceRegistry (since it has access to Hgi). 1458- Removed transform feedback from non-instanced GPU culling in Storm. 1459- Fixed incorrect handling of buffer array resizing to 0 elements. 1460 (Issue: [#1230](https://www.github.com/PixarAnimationStudios/USD/issues/1230)) 1461- Fixed memory regression when calling UsdImagingDelegate::SampleTransform 1462 and SamplePrimvar. 1463- Fixed error in UsdImaging when changing from a time where a mesh provided 1464 points or normals to a time that does not. 1465- Fixed potential deadlocks if plugins were loaded at various points in 1466 UsdImagingGLEngine. 1467- Fixed error when processing skinned prim with no joint influences. 1468- Fixed change processing issue with native instanced prims. 1469 (Issue: [#1163](https://www.github.com/PixarAnimationStudios/USD/issues/1163)) 1470- Fixed handling of widths primvar with no value. 1471- Fixed "IsFlipped" computation for native instanced prims. 1472 (Issue: [#1190](https://www.github.com/PixarAnimationStudios/USD/issues/1190)) 1473- Fixed crash when updating a removed primvar. 1474 (PR: [#1223](https://www.github.com/PixarAnimationStudios/USD/pull/1223)) 1475- Fixed crash when reparenting an instance root. 1476 (Issue: [#1245](https://www.github.com/PixarAnimationStudios/USD/issues/1245)) 1477- Fixed various issues with cards prims, including a crash issue. 1478 (Issue: [#1210](https://www.github.com/PixarAnimationStudios/USD/issues/1210)) 1479- Fixed selection encoding/decoding of invisible native instances. 1480- Fixed invalidation when changing the "purpose" attribute. 1481 (Issue: [#1243](https://www.github.com/PixarAnimationStudios/USD/issues/1243)) 1482 1483### usdview 1484- Added "Prototypes" pick mode that selects the prototype for a picked gprim 1485 in a PointInstancer and highlights the picked instance. 1486- Reverted "Prims" and "Instances" pick modes to original behavior of selecting 1487 the root boundable of the picked object. 1488 (Issue: [#1196](https://www.github.com/PixarAnimationStudios/USD/issues/1196)) 1489- Fixed "Reopen Stage" when usdview was launched with `--norender`. 1490 (PR: [#1192](https://www.github.com/PixarAnimationStudios/USD/pull/1192)) 1491- Fixed camera guide and reticles rendering on high DPI displays. 1492 1493### Alembic Plugin 1494- Fixed conversion of mesh subdivision interpolation options between 1495 UsdGeomMesh and AbcGeom's ISubD and OSubD schemas. 1496 (PR: [#1246](https://www.github.com/PixarAnimationStudios/USD/pull/1246)) 1497 1498### Embree Plugin 1499- Removed support for Embree 2.0. The HdEmbree plugin now requires Embree 3. 1500 1501### MaterialX Plugin 1502- Added support for MaterialX 1.37 and deprecated support for 1.36. We 1503 anticipate requiring 1.37 in a future release. 1504- MaterialX "vectorN" datatypes are now translated to USD "floatN" datatypes. 1505- Changed default output name from "result" to "out" to match conventions 1506 in MaterialX specification. 1507- Fixed test issue found during Python 3 work. 1508 (PR: [#1161](https://www.github.com/PixarAnimationStudios/USD/pull/1161)) 1509 1510### RenderMan Plugin 1511- Added support for arbitrary numbers of AOVs in HdPrman. 1512- Removed deprecated RenderMan 22 Hydra plugin. 1513 1514- Material processing now uses SdrShaderNode::GetResolvedImplementationURI to 1515 locate shaders, which allows it consume shaders identified via 1516 UsdShadeShader's info:sourceAsset property. 1517 1518- Modified UsdVol support to allow easier extensions with custom volume plugin 1519 for RenderMan. 1520- Fixed calculation of specularFaceColor in UsdPreviewSurfaceParameters.osl 1521 to better match the spec. 1522 1523## [20.05] - 2020-04-13 1524 1525This release includes initial support for Python 3. Many thanks to our 1526collaborators at Nvidia and SideFX for all of their work to make this 1527happen! 1528 1529The RenderMan 22 Hydra plugin is deprecated, and the deprecated Houdini 1530and Katana plugins have been removed from the repository. See details below. 1531 1532### Build 1533- Added support for Python 3. This may be enabled by specifying 1534 `PXR_USE_PYTHON_3=TRUE` when running cmake or by running build_usd.py 1535 with Python 3. 1536- Updated C++ standard version to C++14 per VFX Reference Platform CY2018. 1537- Updated CMake minimum version to 3.12. 2.x support was deprecated in 19.11. 1538- Moved to Azure Pipelines for CI. 1539- PySide2 is now preferred over PySide if both are installed. Users can specify 1540 `PYSIDE_USE_PYSIDE=TRUE` when running cmake to force the use of PySide. 1541- Building examples and tutorials is now optional. 1542 (PR: [#594](https://www.github.com/PixarAnimationStudios/USD/pull/594)) 1543 1544- Various fixes and changes to build_usd.py 1545 - Updated TBB (2017.6), Alembic (1.7.10), OpenImageIO (1.8.9), and 1546 OpenColorIO (1.0.9) dependencies for VFX Reference Platform CY2018 and/or 1547 to reflect versions used for testing internally. 1548 - Updated OpenSubdiv to 3.4.3. This removes the dependency on GLFW, 1549 which itself required X libraries on Linux. 1550 (Issue: [#261](https://www.github.com/PixarAnimationStudios/USD/issues/261)) 1551 - Miscellaneous fixes. 1552 (Issue: [#1110](https://www.github.com/PixarAnimationStudios/USD/issues/1110), 1553 Issue: [#1126](https://www.github.com/PixarAnimationStudios/USD/issues/1126)) 1554 1555- Made OpenEXR an optional dependency. It is only required for enabling 1556 OpenImageIO, OpenVDB, or OSL support. 1557 (PR: [#1082](https://www.github.com/PixarAnimationStudios/USD/pull/1082)) 1558- Fixed strict builds on Linux when building with boost version 1.61 or 1559 earlier. (PR: [#1081](https://www.github.com/PixarAnimationStudios/USD/pull/1081)) 1560- Fixed issue where warnings from 3rd-party headers would cause strict builds 1561 to fail. 1562- Fixed bug where the boost_python library would not be found when building 1563 against boost 1.67+. 1564- Fixed bug where specifying `PXR_BUILD_DOCUMENTATION=TRUE` but not 1565 having required programs would result in an incomplete build. 1566 (Issue: [#1127](https://www.github.com/PixarAnimationStudios/USD/issues/1127)) 1567- Fixed incorrect instructions in README.md for running build_usd.py under 1568 Visual Studio 2017. 1569 (PR: [#1120](https://www.github.com/PixarAnimationStudios/USD/pull/1120)) 1570- Fixed bug where build_usd.py would pick up external builds of boost 1.70 1571 or later. 1572 (Issue: [#1071](https://www.github.com/PixarAnimationStudios/USD/issues/1071)) 1573- Fixed bug in build_usd.py when building boost with Visual Studio 2019. 1574 (Issue: [#1041](https://www.github.com/PixarAnimationStudios/USD/issues/1041)) 1575- Fixed issue where non-debug builds with Visual Studio 2019 would not work 1576 properly or crash immediately. 1577 (Issue: [#1095](https://www.github.com/PixarAnimationStudios/USD/issues/1095)) 1578- Fixed several issues that caused errors when building a program against 1579 USD with clang on Windows. 1580 (Issue: [#1030](https://www.github.com/PixarAnimationStudios/USD/issues/1030), 1581 PR: [#1079](https://www.github.com/PixarAnimationStudios/USD/pull/1079)) 1582- Fixed issue where debug mode builds on Windows with Python bindings enabled 1583 would fail without a special debug build of Python. 1584 (PR: [#785](https://www.github.com/PixarAnimationStudios/USD/pull/785), 1585 Issue: [#1006](https://www.github.com/PixarAnimationStudios/USD/issues/1006)) 1586 1587### USD 1588- Added typed value proxies to VtValue. 1589- Added SdfPathAncestorsRange for iterating over an SdfPath's ancestors. 1590- Added convenience scenegraph object accessor APIs to UsdPrim and UsdStage. 1591- Added UsdPrim::GetInstances to get all instances of a master. 1592 (Issue: [#962](https://www.github.com/PixarAnimationStudios/USD/issues/962)) 1593- Added UsdPrimDefinition to represent the built-in properties of a given prim. 1594 Users can access a prim's definition via UsdPrim::GetPrimDefinition. 1595- Added UsdUtilsConditionalAbortDiagnosticDelegate, a diagnostic delegate that 1596 aborts when an error or warning is encountered based on text-matching rules. 1597- Added UsdUtilsSparseValueWriter::GetSparseAttrValueWriters to help with 1598 debugging. (PR: [#1038](https://www.github.com/PixarAnimationStudios/USD/pull/1038)) 1599- Added UsdGeomHermiteCurves schema. 1600- Deprecated 'hermite' and 'power' basis for UsdGeomBasisCurves. 1601- Removed remnants of relationship-based shader encoding from UsdShade schemas. 1602- Removed "shadow:include" and "shadow:exclude" from UsdLuxShadowAPI schema. 1603- Removed raw spec access API from UsdSchemaRegistry in favor of the new 1604 UsdPrimDefinition objects. 1605- For static USD builds, the Plug library now resolves plugin paths relative 1606 to the path of the executable that links to USD. 1607- SdfLayer and UsdStage API for timeCodesPerSecond now fall back to using 1608 framesPerSecond if no timeCodePerSecond is specified. 1609- Numerous optimizations for UsdStage load time and authoring speed. 1610- UsdStage now sends notification when population mask, load rules, and 1611 interpolation type are changed. 1612 (Issue: [#1139](https://www.github.com/PixarAnimationStudios/USD/issues/1139)) 1613- Applied API schemas now impart their properties and fallback values as 1614 builtins on the applied prim. 1615- Concrete typed schemas can now provide fallback metadata values. 1616- C++ typenames for schemas are no longer supported as prim typenames 1617 in scene description. 1618 1619- UsdGeomImageable now computes 'purpose' using non-pruning semantics. 1620 See documentation for UsdGeomImageable::ComputePurpose for a description 1621 of the new behavior. 1622 1623- Various fixes and changes for usdGenSchema 1624 - Added --headerTerminatorString option. 1625 (Issue: [#1092](https://www.github.com/PixarAnimationStudios/USD/issues/1092), 1626 PR: [#1097](https://www.github.com/PixarAnimationStudios/USD/pull/1097)) 1627 - Output directory automatically created if it doesn't already exist. 1628 - Changed output in generatedSchema.usda for multiple-apply API schemas. 1629 - Changed output ordering for tokens in tokens.h. 1630 1631- Fixed race condition in UsdGeomBoundable::ComputeExtentFromPlugins that 1632 could cause incorrect results for bounds computations. 1633- Fixed bug with value block handling in UsdFlattenLayerStack. 1634- Fixed incorrect documentation on crate file structure. 1635 (Issue: [#1072](https://www.github.com/PixarAnimationStudios/USD/issues/1072)) 1636- Fixed change processing bug for nested instancing that led to crashes. 1637- Fixed bug reading .usdc files in .usdz files if USDC_USE_PREAD=1 was set. 1638- Fixed usdedit failure on Windows due to file access conflicts. 1639 (PR: [#1094](https://www.github.com/PixarAnimationStudios/USD/pull/1094)) 1640- Fixed line ending issue causing some tests to fail on Windows. 1641 (PR: [#848](https://www.github.com/PixarAnimationStudios/USD/pull/848)) 1642 1643### Imaging 1644- Added swizzle metadata to the output of UsdUVTexture. 1645 (Issue: [#657](https://www.github.com/PixarAnimationStudios/USD/issues/657)) 1646- Added ability to display unloaded prims as bounding boxes. 1647 (PR: [#1145](https://www.github.com/PixarAnimationStudios/USD/pull/1145)) 1648- Added selection highlight outline capabilities (not exposed in usdview). 1649- Added many more improvements to volume visualizations in Storm. 1650- Added basic support for transporting pinned curves to UsdImaging. 1651- Added support for computed vertex primvars for points prim in Storm. 1652- Added support for element invising and point colors in basis curves. 1653- Added hdTiny, a very simple example render delegate. 1654- Added support for cascaded shadow maps (not exposed in usdview). 1655- Added IsStopSupported/Stop/Restart APIs to render delegates. 1656- Added transport of light filters through usdImaging. 1657- Added HdResourceRegistry::ReloadResource API to allow for texture reloading. 1658- Added USDVIEW_OCIO_LUT3D_EDGE_SIZE environment variable for setting 3D LUT 1659 size for OpenColorIO. 1660- Removed IsFlipped() from certain Storm shaders for clean up. 1661- Many changes to remove or replace uses of boost with C++ features. 1662- Changed many APIs in Hgi as that subsystem continues to be built up. 1663- Changed HdResourceRegistry APIs for several cleanups and fixes. 1664- Replaced HdSceneDelegate::GetPrimPathForInstanceIndex with GetScenePrimPath. 1665- Moved HdMaterialParam to HdSt and made it private. 1666- Moved HdxSimpleLightingShader to HdSt. 1667- Fixed issue with Storm shutdown on certain platforms. 1668- Fixed several issues with selection highlighting (including issues relating 1669 to instancing) in usdImaging. 1670- Fixed issue with Storm not drawing geometry when a PxrSurface is attached. 1671 (Issue: [#1128](https://www.github.com/PixarAnimationStudios/USD/issues/1128)) 1672- Fixed issue where UsdUVTexture alpha output was driven by the wrong channel. 1673 (Issue: [#657](https://www.github.com/PixarAnimationStudios/USD/issues/657)) 1674- Fixed drawing of sphere implicit to be centered. 1675 (Issue: [#1086](https://www.github.com/PixarAnimationStudios/USD/issues/1086)) 1676- Fixed handling of primvar addition and removal in Hydra. 1677 (Issue: [#1078](https://www.github.com/PixarAnimationStudios/USD/issues/1078)) 1678- Fixed .glslfx processing to use Ar for resolving paths for includes. 1679- Fixed parsing of texture default values for .glslfx files in Sdr. 1680- Fixed issue with texture binding with certain configurations. 1681 (Issue: [#1063](https://www.github.com/PixarAnimationStudios/USD/issues/1063)) 1682- Fixed several cleanup issues. 1683 (Issue: [#1103](https://www.github.com/PixarAnimationStudios/USD/issues/1103), 1684 PR: [#1104](https://www.github.com/PixarAnimationStudios/USD/pull/1104)) 1685- Fixed order of draw targets drawing in HdxDrawTargetTask. 1686- Fixed default values for displayColor, displayOpacity and widths. 1687 (PR: [#1098](https://www.github.com/PixarAnimationStudios/USD/pull/1098)) 1688- Fixed point instancer resync of prototypes. For example, we now resync 1689 prototypes properly if their material bindings change. 1690- Fixed point instancer refresh in response to structural primvar and prototype 1691 updates. (PR: [#1077](https://www.github.com/PixarAnimationStudios/USD/pull/1077)) 1692- Fixed HdRenderIndex::Clear to always call Finalize() for cleared rprims. 1693 (Issue: [#1040](https://www.github.com/PixarAnimationStudios/USD/issues/1040)) 1694- Fixed color banding issue when using OpenColorIO. 1695- Fixed reading stride with OpenImageIO. 1696 (Issue: [#1080](https://www.github.com/PixarAnimationStudios/USD/issues/1080)) 1697- Fixed drawMode updates with native instancing. 1698 (Issue: [#1069](https://www.github.com/PixarAnimationStudios/USD/issues/1069)) 1699- Fixed case sensitivity for image loading. 1700 (PR: [#804](https://www.github.com/PixarAnimationStudios/USD/pull/804)) 1701- Fixed issue with Storm shader generation when input and primvar names match. 1702- Fixed debug flag not properly displaying source when shader fails to link. 1703 (PR: [#1020](https://www.github.com/PixarAnimationStudios/USD/pull/1020)) 1704 1705### usdview 1706- Added ability to change font size. 1707- Added 'Apply' button to renderer settings dialog. 1708- Improved start up time by waiting until we've populated more of the UI. 1709- Made free-cam's FOV part of saved user settings. 1710- Fixed multi-line paste in the interpreter. 1711 (Issue: [#1117](https://www.github.com/PixarAnimationStudios/USD/issues/1117)) 1712- Fixed errors when using PySide2 5.14.0 or later. 1713 (Issue: [#1111](https://www.github.com/PixarAnimationStudios/USD/issues/1111)) 1714- Fixed errors when closing usdview with the native windowing system commands. 1715 1716### Alembic Plugin 1717- Added file format arguments 'abcReRoot' for reparenting hierarchy beneath 1718 a new parent prim and 'abcLayers' for specifying a list of secondary files 1719 to load as layered Alembic. 1720 (PR: [#1099](https://www.github.com/PixarAnimationStudios/USD/pull/1099)) 1721- Only deliver interesting timeSamples for constant properties. 1722 (PR: [#1114](https://www.github.com/PixarAnimationStudios/USD/pull/1114)) 1723- Relaxed type-checking on position property and let any float[3] type through. 1724 (PR: [#1115](https://www.github.com/PixarAnimationStudios/USD/pull/1115)) 1725- Removed need to link directly against Alembic backend libraries to open files. 1726 1727### Houdini Plugin 1728- The Houdini plugin has been removed from the USD repository in favor of the 1729 native USD support in Houdini's Solaris suite. 1730 1731### Katana Plugin 1732- The Katana plugin has been removed from the USD repository in favor of the 1733 Foundry-supported Katana plugins available at 1734 https://github.com/TheFoundryVisionmongers/KatanaUsdPlugins. 1735 1736### MaterialX Plugin 1737- Fixed bug where implementation file relative paths were assumed to be 1738 relative to the .mtlx file with the implementation node instead of to 1739 the MaterialX library itself. 1740 1741### RenderMan Plugin 1742- Deprecated support for RenderMan 22. We anticipate removing the renderman-22 1743 plugin in a future release. 1744- Added support for HdAov clearValue. 1745- Added support for Stop/Restart functionality. 1746- Added early initial support for light filters and trace groups. 1747- Fixed bug that caused empty renders when no scene camera was present. 1748 (Issue: [#1113](https://www.github.com/PixarAnimationStudios/USD/issues/1113)) 1749- Fixed routing of ri:attributes properties when instancing is involved. 1750- Fixed restarting of RenderMan when application is told that resources 1751 (e.g., textures) need to be reloaded. 1752 1753## [20.02] - 2020-01-24 1754 1755We anticipate aligning with the version requirements from the VFX Reference 1756Platform CY2018 (https://vfxplatform.com) in the next release. In particular, 1757this includes requiring support for C++14. 1758 1759This release adds a Hydra plugin for RenderMan 23 and removes the deprecated 1760Maya plugin from the repository. This release also deprecates support for the 1761Houdini and Katana plugins. See details below. 1762 1763### Build 1764- The source tree has been restructured so that code no longer lives under a 1765 separate "lib" directory. This means that (with a few exceptions) include 1766 paths now match source tree paths. 1767 1768- Added support for Visual Studio 2019 to build_usd.py. 1769 (PR: [#1042](https://www.github.com/PixarAnimationStudios/USD/pull/1042)) 1770- Added PXR_BUILD_USD_TOOLS option to disable building of command-line tools 1771 (e.g. usdcat, usdedit) 1772 (PR: [#1048](https://www.github.com/PixarAnimationStudios/USD/pull/1048)) 1773- The PXR_LIB_PREFIX option now defaults to "" and is respected for .lib files 1774 on Windows. 1775 (Issue: [#1027](https://www.github.com/PixarAnimationStudios/USD/issues/1027)) 1776 1777### USD 1778- Added "subIdentifier" and "sourceType" parameters to GetNodeFromAsset API in 1779 Ndr and Sdr and "subIdentifier" attribute to UsdShadeShader schema. This 1780 allows clients to identify and retrieve definitions for a particular shader 1781 in source assets that have multiple shaders defined in them. 1782 (Issue: [#919](https://www.github.com/PixarAnimationStudios/USD/issues/919)) 1783 1784- Removed unused legacy SdfVariabilityConfig variability value. 1785- Fixed bug where prims in masters would be populated incorrectly when a 1786 UsdStage's population mask contained paths descendant to masters. 1787- Fixed bug where layer stack flattening would lose some variant selections. 1788 (Issue: [#1060](https://www.github.com/PixarAnimationStudios/USD/issues/1060)) 1789- UsdStage::CreateClassPrim is no longer restricted to root prims. 1790 (Issue: [#994](https://www.github.com/PixarAnimationStudios/USD/issues/994)) 1791- UsdVariantSets::GetNames() now returns the union of all variant set names 1792 across layer stacks. 1793- Improved performance of retrieving metadata with templated API in UsdObject. 1794- Numerous changes to improve performance when making edits to many properties. 1795- Removed support for inverse layer offsets which were deprecated in v0.8.2. 1796- Removed support for legacy UsdShade encodings, yielding cleaner code and 1797 improved performance. 1798- Improved diagnostics in usdGenSchema for non-identifier tokens in schema.usda. 1799- Improved documentation generated by usdGenSchema for schema attributes. 1800- usdGenSchema now treats all C++ and Python keywords as reserved and will 1801 prepend a "_" if they are encountered in any identifiers. 1802- Modified UsdGeomXformCommonAPI to be generated and behave like other API 1803 schemas (as the name implies) for consistency. 1804- Fixed bug in UsdGeomImageable::MakeVisible where the given prim would not be 1805 made visible if other "invis" opinions existed on ancestor prims. 1806 (PR: [#1043](https://www.github.com/PixarAnimationStudios/USD/pull/1043)) 1807- Fixed bug in UsdGeomSubset::GetUnassignedIndices where passing in an 1808 invalid element count could lead to a crash. 1809 (Issue: [#989](https://www.github.com/PixarAnimationStudios/USD/issues/989)) 1810- Removed deprecated shader binding API on UsdShadeMaterial in favor of 1811 UsdShadeMaterialBindingAPI schema. 1812- Improved fidelity of light-related UsdRi schemas. 1813- Added UsdLuxDomeLight::OrientToStageUpAxis utility for creating dome lights 1814 with an appropriate default orientation. 1815 (Issue: [#938](https://www.github.com/PixarAnimationStudios/USD/issues/938)) 1816- Added UsdMedia schema library and UsdMediaSpatialAudio schema. 1817- Fixed bugs in UsdSkelCache::ComputeSkelBinding where inherited skel:skeleton 1818 bindings were incorrectly evaluated and bindings would be returned for 1819 inactive prims. 1820- Python binding for UsdSkelSkinningQuery is now UsdSkel.SkinningQuery. 1821 1822### Imaging 1823- Added RenderMan 23 Hydra plugin. 1824- Added support for specifying thread limits and convergence criteria in 1825 HdPrman via settings. 1826- Added initial support for light filters. 1827- Added an Sdr parser plugin for .glslfx files. 1828- Added support for material networks in Storm. 1829- Added initial support for volume rendering in Storm. 1830- Added basic support for bindless shadow maps in Storm. 1831- Added primvar/points editing support for points, basis curves, and meshes 1832 in UsdImaging. Previously everything was resync. 1833- Added Hydra changetracker dependencies between parent and child instancers. 1834- Added new task HdxColorChannelTask to output a specific display channel. 1835- Added command line option (--traceToFile) to usdview to start tracing as soon 1836 as the application is started. 1837- Changed HdPrman linking to be independent of RenderMan install. 1838- Changed "depth" AOV range from [-1, 1] to [0, 1]. 1839- Changed name "linearDepth" AOV to "cameraDepth". 1840- Changed HdxPickHit "ndcDepth" field with a range of [-1,1] to 1841 "normalizedDepth" with a range of [0,1] 1842- Changed edge hashing to use triangular numbers in Hd. This is about 3x faster 1843 than the previous code. 1844- Changed UsdImaging's DrawModeAdapter to use HdMaterialNetwork. 1845- Changed default camera shutter in UsdImaging to match UsdGeomCamera [0,0]. 1846- Improved Storm's instance registry and moved resource registries from Hd core 1847 to Storm. 1848- Improved aggregation of material shaders in Storm. 1849- Improved material primvar filtering in Storm. 1850- Improved property refresh support in UsdImaging for instance attributes. 1851- Removed HydraMaterialAdapter in UsdImaging since it is no longer needed. 1852- Removed old Hydra scene delegate API that was only used by the old material 1853 system in Storm. (GetSurfaceShaderSource, GetDisplacementShaderSource, 1854 GetMaterialParams and others..). 1855- Fixed instance adapter selection highlighting performance issues. 1856- Fixed bug where pick task was continuously running in usdview. 1857- Fixed Storm to skip string primvars. 1858- Fixed bug where rtx_glfImage was not honoring the channel offset and number 1859 of channels specified in the FillRequest parameter. 1860- Fixed nullptr exception in HdPrman when rendering without a camera. 1861- Fixed data ownership of instance indices. DirtyInstanceIndex is set on 1862 instancers and tells them they need to re-fetch their index buffer, relative 1863 to one of their prototypes. 1864- Fixed UsdImaging native instancing so instead of compensating for prototype 1865 transforms by overwriting prototype transforms, it compensates in the 1866 per-instance transform primvar. 1867- Fixed usdSkelImaging dirtyness propagation to the skinning aggregator 1868 computation. 1869- Fixed double color correction on MacOS. 1870- Implemented SamplePrimvar for native instancer adapter. 1871 (Issue: [#996](https://www.github.com/PixarAnimationStudios/USD/issues/996)) 1872- Fixed UsdPreviewSurface material displacement in Storm. 1873 (Issue: [#922](https://www.github.com/PixarAnimationStudios/USD/issues/922), 1874 Issue: [#1026](https://www.github.com/PixarAnimationStudios/USD/issues/1026)) 1875- Fixed change processing when an inherited primvar is removed. 1876 (Issue: [#1004](https://www.github.com/PixarAnimationStudios/USD/issues/1004)) 1877- Fixed incorrect points buffer computation for implicit geometry. 1878 (Issue: [#1024](https://www.github.com/PixarAnimationStudios/USD/issues/1024)) 1879- Added GetHgiTextureHandle API on renderbuffer to avoid HdSt dynamic_casts 1880 and CPU -> GPU copies during post-process pipeline 1881 (Issue: [#1008](https://www.github.com/PixarAnimationStudios/USD/issues/1008)) 1882- Fixed TBB library linkage in hdEmbree. 1883 (PR: [#991](https://www.github.com/PixarAnimationStudios/USD/pull/991)) 1884- Added support for 'jpeg' extension for Glf_StbImage. 1885 (PR: [#998](https://www.github.com/PixarAnimationStudios/USD/pull/998)) 1886- Fixed bug where time-invariant geometry subsets would mask time-varying 1887 topology from Hydra. 1888 (PR: [#1045](https://www.github.com/PixarAnimationStudios/USD/pull/1045)) 1889- Fixed bug where UsdGeomSubset indices were always retrieved at the default 1890 time. (PR: [#1059](https://www.github.com/PixarAnimationStudios/USD/pull/1059)) 1891- Fixed incomplete handling of UsdGeomMesh face-varying options. 1892 (PR: [#1061](https://www.github.com/PixarAnimationStudios/USD/pull/1061)) 1893 1894### Houdini Plugin 1895- Deprecated Houdini plugins in favor of Houdini-native USD support. 1896 We anticipate removing the plugin from the USD repository in a future 1897 release. 1898- Additional changes for Houdini 17.5 compatibility. 1899 1900### Katana Plugin 1901- Deprecated Katana plugin in favor of the Foundry-supported Katana plugins 1902 available at https://github.com/TheFoundryVisionmongers/KatanaUsdPlugins. 1903 We anticipate removing the plugin from the USD repository in a future release. 1904- Changed how UsdGeomBasisCurve Widths and Normal attributes are read into 1905 Katana. Author either a geometry.point.* entry (old behavior) or a 1906 geometry.arbitrary.* entry (new behavior) based on the attribute's 1907 interpolation. 1908- Changes in preparation for reading UsdShadeMaterials which contain 1909 UsdShadeNodegraph subgraphs. 1910- Removed custom Viewer Modifier Plugins. These were used by Katana's legacy 1911 Viewer tab, which has been replaced by the Hydra Viewer tab. 1912- Removed support for /LooksDerivedStructure in USD shader libraries. 1913- Fixed incorrect geometry.instanceSource attribute for nested instances. 1914 (PR: [#1015](https://www.github.com/PixarAnimationStudios/USD/pull/1015)) 1915 1916### MaterialX Plugin 1917- Added support for versions 1.36.3 and later. 1918 1919### Maya Plugin 1920- The Maya plugin has been removed from the USD repository. Development for 1921 the plugin has moved to the Autodesk maya-usd repository located at 1922 https://github.com/Autodesk/maya-usd. 1923 1924## [19.11] - 2019-10-18 1925 1926This release deprecates support for cmake 2.x and the Maya plugin. 1927See details below. 1928 1929### Build 1930- Deprecated support for cmake 2.x. We anticipate requiring cmake 3.x in the 1931 next release. 1932- build_usd.py now fails if using 32-bit Python, which is a common gotcha on 1933 Windows. (Issue: [#921](https://www.github.com/PixarAnimationStudios/USD/issues/921)) 1934- Fixed issue where build_usd.py would fail to build TBB on MacOS if CUDA was 1935 installed due to an issue in the TBB build system. 1936 (Issue: [#767](https://www.github.com/PixarAnimationStudios/USD/issues/767)) 1937- Made PXR_VERSION a valid and comparable integer in C++. 1938 (PR: [#886](https://www.github.com/PixarAnimationStudios/USD/pull/886)) 1939- Fixed issue where pxrTargets.cmake would include plugins with no exported 1940 symbols. This caused errors when building against USD on Windows. 1941 (Issue: [#530](https://www.github.com/PixarAnimationStudios/USD/issues/530)) 1942- Fixed issue where downstream cmake projects using pxrTargets.cmake could not 1943 find the USD headers. 1944 1945### USD 1946- Added warning when reading a .usda layer with size in MB greater than value 1947 of SDF_TEXTFILE_SIZE_WARNING_MB environment variable. 1948 (PR: [#980](https://www.github.com/PixarAnimationStudios/USD/pull/980)) 1949- Added UsdStageLoadRules to support more robust and declarative intent about 1950 how payloads should be included in a UsdStage. 1951- Added UsdPrimCompositionQuery to facilitate discovery of composition arcs 1952 affecting a UsdPrim. 1953 1954- Added "timecode" scene description value type. This type is represented by 1955 the SdfTimeCode class and can be used for attribute and metadata values. 1956 Layer offsets are applied to all timecode values during UsdStage 1957 value resolution, enabling "timing curve"-like attributes. 1958 1959- Added support for Google's Draco compression library. This includes an 1960 SdfFileFormat plugin for reading .drc files and a standalone "usdcompress" 1961 tool that extracts and compress Mesh primitives from a USD file, creates 1962 .drc files for each one, and references them back into a result USD file. 1963 (PR: [#912](https://www.github.com/PixarAnimationStudios/USD/pull/912)) 1964 1965- Added --quiet flag to usdGenSchema for suppressing output. 1966 (PR: [#480](https://www.github.com/PixarAnimationStudios/USD/pull/480)) 1967- Added --brief flag to usddiff so differing lines are not printed. 1968- Added support for indexed uint primvars to UsdGeomPrimvar. 1969 (PR: [#861](https://www.github.com/PixarAnimationStudios/USD/pull/861)) 1970 1971- Added "accelerations" attribute to UsdGeomPointInstancer schema and updated 1972 UsdGeomPointInstancer::ComputeInstanceTransformAtTime(s) to account for 1973 authored accelerations, if present. 1974 1975- Added "accelerations" attribute to UsdGeomPointBased schema and added 1976 UsdGeomPointBased::ComputePointsAtTime(s) to compute point positions using 1977 authored velocities and accelerations, if present. 1978 1979- Added initial version of UsdRender domain and schemas. See documentation and 1980 white paper on openusd.org for more details. 1981 (Issue: [#910](https://www.github.com/PixarAnimationStudios/USD/issues/910)) 1982- Added UsdShadeInput::GetValueProducingAttribute to facilitate more robust and 1983 correct processing of UsdShade shading networks. 1984- Added initial support for skinning mesh normals in UsdSkel. 1985 1986- Removed SdfAbstractDataSpecId and updated the SdfAbstractData interface to 1987 use SdfPath in its place. Existing SdfAbstractData subclasses must be 1988 updated to match. See this usd-interest post for more details: 1989 https://groups.google.com/forum/#!topic/usd-interest/IVmd1t1GKBA 1990 1991- Numerous fixes for C++14 / gcc6 warnings. 1992 (PR: [#869](https://www.github.com/PixarAnimationStudios/USD/pull/869)) 1993- Various optimizations and cleanups in trace library. 1994 1995- Inherits and specializes arcs that target root prims ("global" arcs) are now 1996 combined with arcs that target sub-root prims ("local" arcs) for strength 1997 ordering in composition. Previously, local arcs would always be considered 1998 stronger than global arcs regardless of their authored order. 1999 2000- Calling UsdReferences::SetReferences (and equivalent API on UsdPayloads, 2001 UsdInherits, and UsdSpecializes) with an empty vector now authors an 2002 explicit empty list op instead of being a no-op. 2003 (Issue: [#749](https://www.github.com/PixarAnimationStudios/USD/issues/749)) 2004 2005- Numerous fixes and changes to Sdr and associated parser plugins. This 2006 includes the addition of a "terminal" property type and "role" and 2007 "renderType" metadata to better describe shader properties and their 2008 representation in scene description. 2009 2010- Numerous optimizations for UsdStage load time and authoring speed. 2011- Improved performance of adding empty sublayers to an existing UsdStage. 2012 2013- USD native instancing now includes both LoadRules and PopulationMasks in 2014 instancing keys, so different instances can have different load state. 2015 Instances that have equivalent load rules and population masks still share, 2016 but those that do not will use different masters. 2017 2018- Load/Unload operations on a UsdStage now must operate on the "expanded" stage 2019 namespace. That is, the namespace as it would be if instancing was disabled. 2020- Updated UsdLuxDomeLight schema to clarify a dome light's orientation and 2021 its textures' orientation. 2022 (Issue: [#938](https://www.github.com/PixarAnimationStudios/USD/issues/938)) 2023- Changed 'pointIndices' attribute on UsdSkelBlendShape schema from uint[] 2024 to int[] for consistency with other core schemas. 2025 (Issue: [#858](https://www.github.com/PixarAnimationStudios/USD/issues/858)) 2026- Rewrote UsdSkelBakeSkinning to provide a more efficient baking solution. 2027- Fixed bug where converting .usdc files from version 0.7 to 0.8 when saving 2028 an existing file would produce incorrect layer offsets in payloads. 2029- Fixed crashes when calling methods on invalid Usd.SchemaBase objects in 2030 Python. 2031 (Issue: [#872](https://www.github.com/PixarAnimationStudios/USD/issues/872), 2032 PR: [#876](https://www.github.com/PixarAnimationStudios/USD/pull/876)) 2033- Fixed crash when muting and unmuting layers on a UsdStage. 2034 (Issue: [#883](https://www.github.com/PixarAnimationStudios/USD/issues/883)) 2035 2036### Imaging 2037- Renamed the real-time engine/rasterizer to "Storm" 2038- Added support for dome lights in Storm. 2039- Added support for screen-space adaptive tessellation and drawing for Loop 2040 scheme subdivision surface meshes when using OpenSubdiv 3.4 in Storm. 2041- Added basic support for AOVs in Storm. In usdview, you can now switch between 2042 color and depth when using Hydra Storm. 2043- Added Hgi (Hydra Graphics Interface) library. Hgi abstracts away graphics 2044 API calls in Storm. 2045- Added HgiGL library, an OpenGL backend implementation for Hgi. 2046- Added support for vstructs in Hydra RenderMan plugin. 2047- Added support for light attributes in UsdImaging and Hydra RenderMan plugin. 2048- Added an adapter in UsdImaging to read camera information, including custom 2049 camera parameters. 2050- Added support for physical camera parameters in Hydra and Hydra RenderMan 2051 plugin. 2052- Added support for camera motion blur in Hydra RenderMan plugin. 2053- Added support to read any number of time samples authored in Usd. Improved 2054 Hydra API to allow render delegates to extract any number of samples from 2055 scene delegates. 2056- Added API to HdRenderDelegate and the render thread to pause and resume 2057 renderers if supported. Updated Hydra RenderMan plugin to support it. 2058 (PR: [#888](https://www.github.com/PixarAnimationStudios/USD/pull/888)) 2059- Added API to HdRenderDelegate to return render stats to the client. Updated 2060 Hydra Embree to expose the number of samples completed this way. 2061 (PR: [#888](https://www.github.com/PixarAnimationStudios/USD/pull/888)) 2062- Added element/scope selection highlighting for raytraced backends. 2063- Added basic support for NURBS curves to UsdImaging. For now, it will 2064 send them to the render delegate as basis curves. 2065- Added support for UsdShadeNodeGraph to UsdImaging. 2066- Added support for acceleration primvars in UsdImaging and Hydra. 2067- Added support for inherited primvars to native instances. 2068- Added instance-inheritance support for string-typed primvars. 2069- Added convergence criteria to render settings in Hydra RenderMan. 2070- Added support for basis curves instancing in Hydra RenderMan plugin. 2071- Added support for OpenImageIO's IOProxy feature to allow supported image 2072 files (such as .exr) to be read from .usdz files. 2073- Added "Set As Active Camera' on USD camera prims context menu in usdview. 2074- Added a "Pause" menu item to usdview, and display the render status message. 2075- Replaced the key/fill/back lights in usdview by a dome light, still only 2076 works in Storm for now. 2077 2078- Deprecated old material accessors on HdSceneDelegate in favor of using 2079 material networks in Storm. 2080- Removed TrackVariabilityPrep/UpdateForTimePrep in UsdImaging. 2081 2082- Moved usdShaders from usdImaging/lib to usdImaging/plugin. 2083- Moved rendererPlugin and rendererPluginRegistry from hdx to hd. 2084- Moved UsdPreviewSurface conversion to the MatfiltFilterChain in 2085 Hydra RenderMan plugin. 2086- Changed return type of HdRenderBuffer::Map from uint8_t to void*. 2087- Improved handling of invalidations and edits of data such as instancers, 2088 primvars and others, in UsdImaging. 2089- Improved 32 bit color support when using Hydra and the default task controller. 2090- Improved draw item batching in Hydra Storm. 2091 (PR: [#528](https://www.github.com/PixarAnimationStudios/USD/pull/528)) 2092- Improved GLSL error reporting in Storm. 2093- Improved usdrecord to allow more consistent results with usdview (e.g., 2094 default materials, purpose). 2095- Prim browser in usdview now maintains its expansion-state and view when the 2096 stage recomposes. 2097 2098- Prim browser in usdview now behaves more like Maya's outliner with respect to 2099 viewport selections: the PrimView will no long expand/scroll to display the 2100 selected prim until you use the 'f' hotkey over it to frame the selection. 2101 Instead, all of the ancestors of selected prims will be highlighted in a 2102 secondary color. 2103 2104- Searches in the usdview prim browser begin at the currently selected prim 2105 rather than at the root of the scene. 2106- Made usdview panes easier to resize by doubling size of splitter lanes. 2107- Made usdview timeline playhead much larger to make it easier to grab. 2108- Fixed inheriting primvars through instance boundaries when the primvar is an 2109 array. 2110- Fixed the way UsdGeomPointInstancer calculates purpose and visibility across 2111 instance/master boundaries. 2112- Fixed memory leak for draw items in Storm. 2113- Fixed handling infinite bounds explicitly during GPU frustum culling in Storm. 2114- Fixed UsdShadeShader material invalidations in UsdImaging. 2115- Fixed handling of topology changes for basis curves in Storm. 2116- Fixed ortho camera handling in Hydra RenderMan plugin. 2117 2118### Houdini Plugin 2119- Added general methods for converting between USD values and GA_Attribute data. 2120- Fixed missing usdSkel dependency. 2121 (PR: [#827](https://www.github.com/PixarAnimationStudios/USD/pull/827)) 2122 2123- Detect skinning influences stored as detail attribs when converting to 2124 capture attributes. This allows rigid shapes to be coalesced into deforming 2125 agent shapes. 2126 2127### Katana Plugin 2128- Point instancers with velocities now get motion blur on the first frame, 2129 even if their positions are not sampled at any previous frames. 2130- Katana paths are now better aligned with USD paths when possible for point 2131 instancer prototypes. 2132- Includes "prmanLightParams.iesProfileNormalize" when reading UsdLux lights 2133 in as RenderMan representations 2134 2135- Fixed bug where per-instance primvar values on point instancers could be 2136 inherited by the prototype geometry, causing warnings about mismatched sizes. 2137 (Issue: [#893](https://www.github.com/PixarAnimationStudios/USD/issues/893)) 2138 2139### MaterialX Plugin 2140- Fixed bug when reading a .mtlx file with more than 1 bindinput. 2141 (Issue: [#950](https://www.github.com/PixarAnimationStudios/USD/issues/950), 2142 PR: [#956](https://www.github.com/PixarAnimationStudios/USD/pull/956)) 2143 2144### Maya Plugin 2145- Deprecated Maya plugin in favor of the Autodesk maya-usd plugin available at 2146 https://github.com/Autodesk/maya-usd. We anticipate removing the plugin from 2147 the USD repository in the next release and recommend users begin transitioning 2148 to the Autodesk plugin -- it contains the same features as the Pixar plugin 2149 (in fact, it is the same code). 2150 2151- FindMaya.cmake module on MacOS (once again) supports paths that include the 2152 "Maya.app/Contents" subdirectory when specifying MAYA_LOCATION. 2153 (PR: [#878](https://www.github.com/PixarAnimationStudios/USD/pull/878)) 2154- Visibility for Maya point instancers is now exported to UsdGeomPointInstancer. 2155- Maya "stroke" nodes are now exported as UsdGeomBasisCurves. 2156 (Issue: [#867](https://www.github.com/PixarAnimationStudios/USD/issues/867)) 2157- Various bug fixes and cleanup. 2158 2159## [19.07] - 2019-06-17 2160 2161### Build 2162- Improved detection of GLEW and Ptex libraries during build. 2163 (PR: [#808](https://www.github.com/PixarAnimationStudios/USD/pull/808)) 2164- Fixed bug in build_usd.py that caused errors when specifying the 2165 "Xcode" CMake generator. 2166 2167### USD: 2168- Various optimizations and cleanups in trace library. 2169- Added iterator-based construction for VtArray. 2170 (PR: [#644](https://www.github.com/PixarAnimationStudios/USD/pull/644)) 2171- Added Python bindings for ArResolver::RefreshContext. 2172 (PR: [#820](https://www.github.com/PixarAnimationStudios/USD/pull/820)) 2173- Fixed incorrect results from NdrRegistry::GetAllNodeSourceTypes. 2174- Removed unused spec types from Sdf. 2175- Reimplemented SdfPath. The new implementation dramatically improves the 2176 performance of creating property paths, which is a key part of value 2177 resolution. 2178- SdfFileFormat::IsStreamingLayer was moved to SdfAbstractData::StreamsData. 2179 SdfAbstractData implementations are now responsible for expressing 2180 whether they stream data from their back-end instead of SdfFileFormat. 2181- Added file format arguments to SdfLayer::CreateAnonymous to match CreateNew. 2182- Fixed bug where strings in scene description that look like format 2183 specifiers would be interpreted as such during .usda output. 2184- Added dynamic payloads feature. Dynamic payloads allow file formats to 2185 procedurally generate a layer using metadata authored on the prim where the 2186 layer is introduced via a payload arc. See examples and "Advanced Features" 2187 documentation for more details. 2188- Fixed erroneous composition cycle detection for subroot references to 2189 sibling prims across reference boundaries. 2190- Added support for "schemaTokens" customData entry in schema.usda. This 2191 allows developers to associate tokens with a particular schema for clarity 2192 and organization. These tokens will continue to be emitted into the 2193 standard tokens.h and tokens.cpp files in each schema library. 2194- Removed deprecated UsdListPositionTempDefault and USD_AUTHOR_OLD_STYLE_ADD 2195 environment variable. 2196- Improved error detection for truncated .usdc files. 2197- Improved error messages and debug output for USD schema generation. 2198 (PR: [#427](https://www.github.com/PixarAnimationStudios/USD/pull/427), 2199 PR: [#478](https://www.github.com/PixarAnimationStudios/USD/pull/478)) 2200- Fixed various issues that caused build errors on Windows. 2201 (Issue: [#812](https://www.github.com/PixarAnimationStudios/USD/issues/812)) 2202- Fixed bug that caused corrupt .usdc files to be created in certain rare 2203 cases. (Issue: [#811](https://www.github.com/PixarAnimationStudios/USD/issues/811)) 2204- Fixed bug where asset-valued stage metadata would not be resolved. 2205- Calling Usd.Prim.IsDefined on a null prim in Python now raises a 2206 Python exception. 2207 (Issue: [#753](https://www.github.com/PixarAnimationStudios/USD/issues/753)) 2208- Fixed bug in UsdUtils dependency extraction and .usdz creation where 2209 asset dependencies in layer metadata were ignored. 2210- Improved integer encoding and fixed a source of non-deterministic output 2211 in .usdc file format. 2212 (Issue: [#830](https://www.github.com/PixarAnimationStudios/USD/issues/830)) 2213- Added ability to usdcat to only show layer metadata via --layerMetadata 2214 command-line flag. 2215- UsdGeomBasisCurves schema now accepts "pinned" as a valid value for 2216 wrapping to represent pinned curves. 2217- UsdGeomPointInstancer will now use the "append" list op when authoring 2218 inactiveIds metadata instead of the deprecated "added" list op. This 2219 behavior can be reverted by setting the environment variable 2220 `USDGEOM_POINTINSTANCER_NEW_APPLYOPS` to 0, but this will be removed 2221 in a future release. 2222- Added UsdShadeCoordSysAPI schema for representing coordinate systems. 2223- Added shaping:ies:normalize attribute to UsdLuxShapingAPI. 2224- Numerous fixes and improvements to UsdSkel schemas. 2225 2226### Imaging: 2227- Added early version of RenderMan Hydra render delegate with support for 2228 geometry,material networks, lights, volumes, coordinate systems and more! 2229- Added support for coordinate systems in Hydra and UsdImaging. 2230- Added support for categories per instance in Hydra to support light linking 2231 to individual instances. 2232- Added order independent transparency (OIT) to Hydra GL. 2233- Added support for backend-independent picking and highlighting. 2234- Improved Hydra support for scenegraph cameras. 2235- Added support for instance-rate primvar queries in Hydra GL shading code. 2236- Added support for generating normals for picking hits in Hydra GL. 2237- Added "DontConform" camera window policy. 2238- Added support for picking points in Hydra GL. 2239- Added depth compositing to HdxColorizeTask. 2240- Render delegates can now access "velocities" attribute on point-based schemas. 2241 (PR: [#824](https://www.github.com/PixarAnimationStudios/USD/pull/824)) 2242- Refactored and clarified use of "path" and "prim" terminology in UsdImaging. 2243- Removed HdChangeTracker::MarkAllCollectionsDirty 2244- Removed render tags API from HdRprimCollection. They have become a Hydra 2245 task concept. 2246- Fixed instancing-related crashes in UsdImaging. 2247 (Issue: [#838](https://www.github.com/PixarAnimationStudios/USD/issues/838), 2248 Issue: [#847](https://www.github.com/PixarAnimationStudios/USD/issues/847)) 2249- Added usdAppUtils library containing common functionality and utilities 2250 for applications that view USD stages. 2251- Added initial version of usdrecord command line tool for generating images 2252 from a USD file. 2253- Added "debug flags" configuration dialog in usdview. 2254- Added ability to specify first/last/current frame when launching usdview 2255 via "--ff", "--lf", and "--cf" command line parameters. 2256 (PR: [#832](https://www.github.com/PixarAnimationStudios/USD/pull/832)) 2257- Numerous correctness, interaction, and performance improvements to usdview's 2258 transport control (frame slider). 2259 (PR: [#770](https://www.github.com/PixarAnimationStudios/USD/pull/770)) 2260 2261### Alembic Plugin: 2262- Added support for Alembic 1.7.9. 2263 (PR: [#825](https://www.github.com/PixarAnimationStudios/USD/pull/825)) 2264 2265### Houdini Plugin: 2266- Support for Houdini 16.0 is deprecated. We anticipate bumping the minimum 2267 version requirement to 16.5 and dropping 16.0 support in the next release. 2268- Fixed bug which could cause visibility to be incorrect. 2269- Added support for export of additional primvar types. 2270- Fixed bug which could cause incorrect attribute typeinfo when importing 2271 array attributes. 2272- Added support for additional OSD subdiv interpolation tags. 2273- Added support for targeting the default prim on import via a reserved 2274 "defaultPrim" prim path. 2275- Miscellaneous improvements for converting between UsdSkel and Agent 2276 primitives. 2277 2278### Katana Plugin: 2279- Added support for reading and resolving collection-based material bindings to 2280 PxrUsdIn. This is done as a two stage process in which bindings (for the 2281 purposes specified in "additionalBindingPurposeNames") are added within a 2282 "usd.materialBindings" group attribute. The PxrUsdInResolveMaterialBindings 2283 node (and its corresponding Op) transfers a purpose's binding to the 2284 system-level "materialAssign" attribute and optionally filters inherited 2285 redundancy. 2286- The "info.usd" attributes which advertise which API schemas are applied can 2287 be created in either array or group attribute form. The latter is convenient 2288 to match against via CEL. 2289 2290### Maya Plugin: 2291- Add support for exporting assembly edits on pxrUsdReferenceAssembly nodes. 2292- Expose controls for tweaking selection parameters in pxrHdImagingShape. 2293- Importing shaders and lights will use mel commands to property add shaders 2294 to hypershade and lights to the defaultLightSet. 2295 2296## [19.05] - 2019-04-10 2297 2298### Build 2299- Added support for Ninja build system in build_usd.py. 2300 (PR: [#590](https://www.github.com/PixarAnimationStudios/USD/pull/590)) 2301- Added --build-debug option to build_usd.py. 2302 (PR: [#502](https://www.github.com/PixarAnimationStudios/USD/pull/502)) 2303- Better support for static builds in exported pxrConfig.cmake. 2304 (PR: [#787](https://www.github.com/PixarAnimationStudios/USD/pull/787)) 2305- .pdb files are now installed with the libraries on Windows. 2306 (PR: [#502](https://www.github.com/PixarAnimationStudios/USD/pull/502)) 2307- MacOS users can now run build_usd.py with Maya's Python interpreter (mayapy) 2308 to ensure that USD and the Maya plugin will be built against Maya's Python. 2309 This requires the --no-usdview option, as Maya does not provide the OpenGL 2310 module in Python. 2311 (Issue: [#10](https://www.github.com/PixarAnimationStudios/USD/issues/10)) 2312- Numerous fixes for FindMaya.cmake module. In particular, users on MacOS 2313 who specify MAYA_LOCATION should now use the root of the installation, 2314 without the "Maya.app/Contents" suffix. 2315 2316### USD: 2317- Added usdtree utility for viewing the scenegraph at the command line. 2318 (PR: [#619](https://www.github.com/PixarAnimationStudios/USD/pull/619)) 2319- Added ability to configure default camera prim name via plugin and query 2320 the default name via UsdUtilsGetPrimaryCameraName. 2321- Added UsdUtilsTimeCodeRange for representing an iterable range of time codes. 2322- Added API to UsdGeom for setting and querying Stage-level linear units via 2323 the "metersPerUnit" metadata field. 2324- Changed SdfFileFormat interface to operate in terms of SdfLayer instead of 2325 SdfLayerBase. 2326- Improved performance of UsdGeomPointBased::ComputeExtent overload with an 2327 additional transform. 2328 (PR: [#640](https://www.github.com/PixarAnimationStudios/USD/pull/640)) 2329- Various cleanup changes to fix documentation, compiler warnings, and remove 2330 unused or legacy code. 2331- Numerous changes to UsdSkel schemas for resolving and imaging blend shapes. 2332- Removed UsdGeomFaceSetAPI schema. 2333- Removed SdfLayerBase. Its functionality was folded into SdfLayer. 2334- Fixed bug where parts of the codegen template for multiple-apply API schemas 2335 were specific to UsdCollectionAPI. 2336 (Issue: [#799](https://www.github.com/PixarAnimationStudios/USD/issues/799)) 2337- Fixed bug preventing the use of symlinks for generatedSchema.usda. 2338 (Issue: [#763](https://www.github.com/PixarAnimationStudios/USD/issues/763)) 2339- Fixed several bugs in .usdz creation related to nesting of .usdz files and 2340 file path syntax on Windows. 2341 2342### Imaging: 2343- Added "MaterialTags" mechanism which allows the GL backend to render opaque 2344 primitives separated from translucent primitives. 2345- Added early implementation of CPU/GPU UsdSkel skinning support, working 2346 in both GL and Embree backends. 2347- Added early implementation of blend shapes support to UsdSkelImaging adapter. 2348- Refactored renderer-independent input/output code into new "hio" library. 2349- Added new phase for Hydra tasks called "Prepare", which runs after Sync 2350 phase and before Commit. 2351- Added "instanceId" and "elementId" AOVs in HdEmbree. 2352- Added new purpose cache in UsdImaging to improve performance. 2353- Added support for animated textures in drawModeAdapter. 2354 (PR: [#735](https://www.github.com/PixarAnimationStudios/USD/pull/735)) 2355- TaskController::TestIntersections now allows selection by nearestToCamera. 2356 (PR: [#760](https://www.github.com/PixarAnimationStudios/USD/pull/760)) 2357- Split Hydra's color primvar into a float3 displayColor and a float 2358 displayOpacity. 2359- Removed hidden GL dependencies in UsdImaging tests. 2360- Removed unnecessary parameters from GetInstancerTransform and 2361 SampleInstancerTransforms in HdSceneDelegate API. 2362- Fixed several issues with curve drawing in GL backend. 2363 (Issue: [#690](https://www.github.com/PixarAnimationStudios/USD/issues/690)) 2364- Fixed bug where UsdGeomSubset called Populate instead of Resync during 2365 resyncs. 2366- Fixed leak of empty GlfSimpleShadowArray instance. 2367 (PR: [#786](https://www.github.com/PixarAnimationStudios/USD/pull/786)) 2368 2369### Alembic plugin: 2370- Fixed double time scaling when converting Alembic sample times from seconds 2371 to USD time codes. 2372 (Issue: [#662](https://www.github.com/PixarAnimationStudios/USD/issues/662)) 2373- USD's "timeCodesPerSecond" metadata is now used to scale when reading or 2374 writing an Alembic file. 2375- Added support for facesets, which are represented using the UsdGeomSubset 2376 schema. (PR: [#758](https://www.github.com/PixarAnimationStudios/USD/pull/758)) 2377 2378### Houdini plugin: 2379- Added support for namespaced primvars in Houdini 17.5+. 2380 (PR: [#747](https://www.github.com/PixarAnimationStudios/USD/pull/747)) 2381- Added support for caching in-memory USD stages in GusdStageCache. 2382 (PR: [#775](https://www.github.com/PixarAnimationStudios/USD/pull/775)) 2383- Added support for import and export of holeIndices attribute on UsdGeomMesh. 2384- Added support for all registered USD file extensions. 2385- Changes in support of upcoming Houdini versions. 2386- Fixed spurious warnings when evaluating transforms on pseudo-root prims. 2387 2388### Katana plugin: 2389- The Katana plugin no longer supports Katana 2.x. Support for 2.x was 2390 deprecated in release 19.03. 2391- Expanded support for and use of zero-copy construction of FnAttribute from 2392 VtArray. 2393- Ensure that a NullAttribute is used to block an inherited shading connection 2394 when the USD equivalent is present. 2395- PxrUsdIn will observe a "katana:useDefaultMotionSamples" USD attribute to 2396 hard-wire the equivalent behavior of a PxrUsdInDefaultMotionSamples node 2397 targeting that scope. 2398- Fixed bug where calling UsdKatanaCache::FindSessionLayer with a cache key 2399 derived from an empty GroupAttribute would not return a layer whose key 2400 was generated for an invalid/nonexistent GroupAttribute. 2401- Fixed crash in PxrUsdIn when an invalid regex value was given for 2402 "ignoreLayerRegex". 2403 2404### Maya plugin: 2405- Added support for exporting units via new "metersPerUnit" metadata. 2406- Imported shaders now appear in the Hypergraph UI. 2407- Imported lights now appear in defaultLightSet. 2408 2409## [19.03] - 2019-02-13 2410 2411### Added 2412Build: 2413- Ability to download and build OpenColorIO dependency via `--opencolorio` 2414 argument to support new color management functionality in Hydra. 2415 2416USD: 2417- Enabled usddumpcrate utility for viewing .usdc file information in the build. 2418 (PR: [#470](https://www.github.com/PixarAnimationStudios/USD/pull/470)) 2419- Internal payloads, list editing and layer offsets for payload arcs. Payloads 2420 now provide the same set of features as references. 2421 2422 This may affect backwards compatibility of layers written with this version 2423 of USD: 2424 - Layers containing payloads using these new features will not be readable 2425 in previous USD versions. .usdc files containing these payloads will be 2426 marked as version 0.8.0. 2427 - Layers containing payloads that only use the previously-available features 2428 will continue to be readable in previous USD versions. 2429- API for querying authored and inherited primvars in UsdGeomPrimvarsAPI schema. 2430- Optional 'jointNames' attribute to UsdSkelSkeleton to help DCC import/export. 2431 2432Imaging: 2433- HdxColorCorrectionTask to do linear to sRGB conversions or color management 2434 via OpenColorIO. 2435- HdxProgressiveTask type tag for tasks that support progressive rendering. 2436- Initial support for computations in the UsdImaging scene delegate. 2437- Support for points rendering for basis curves in Hydra GL. 2438- Publish the normals attribute or primvar from points primitives through 2439 Hydra. (PR: [#742](https://www.github.com/PixarAnimationStudios/USD/pull/742)) 2440- usdview now responds to all scene edits from the interpreter. Plugins can 2441 connect to the usdviewApi.dataModel.signalPrimsChanged signal to be notified 2442 for these changes. 2443 2444Houdini plugin: 2445- Support for more primvar types. 2446 2447Katana plugin: 2448- Support for reading materials with multiple incoming shader connections. 2449 2450Maya plugin: 2451- Initial work for a UsdPreviewSurface shader node and USD export support. 2452 2453### Changed 2454Build: 2455- build_usd.py now explicitly detects Python version to link against on macOS 2456 to avoid conflicts between multiple installations. 2457 (Issue: [#19](https://www.github.com/PixarAnimationStudios/USD/issues/19), 2458 Issue: [#699](https://www.github.com/PixarAnimationStudios/USD/issues/699)) 2459- build_usd.py only builds boost libraries like boost::filesystem when needed. 2460 2461USD: 2462- UsdStage::MuteAndUnmuteLayers and LoadAndUnload now send a 2463 UsdNotice::StageContentsChanged notification. 2464 (PR: [#710](https://www.github.com/PixarAnimationStudios/USD/pull/710)) 2465 2466Imaging: 2467- UsdImaging scene delegate now stops population traversal at non-imageable 2468 prims. 2469- Materials are no longer resynced on visibility changes. 2470- Hydra will now only reset varying state for clean prims. 2471- HdxCompositor can now copy depth without remapping its range and can also 2472 copy color and depth to a user-provided viewport size. 2473- Interacting with the 'Vis' or 'Draw Mode' columns in usdview no longer 2474 changes selection. 2475- When multiple prims are selected in usdview, changes in the 'Vis' column 2476 to one of those prims will affect all of them. 2477 2478Katana plugin: 2479- Optimizations for reading gprims and point instancers via a new library, 2480 vtKatana. This library requires Katana 3.0 or later. 2481 2482Maya plugin: 2483- Configuration of the default material scope name has been moved to usdUtils 2484 to facilitate sharing across plugins. See UsdUtilsGetMaterialsScopeName. 2485 2486### Deprecated 2487USD: 2488- UsdAttribute::HasAuthoredValueOpinion in favor of HasAuthoredValue. 2489- UsdPrim::ClearPayload, HasPayload, and SetPayload in favor of API on 2490 UsdPayloads object returned by GetPayloads. 2491- Primvar API on UsdGeomImageable in favor of UsdGeomPrimvarsAPI schema. 2492 2493Katana: 2494- Support for Katana 2.x in favor of Katana 3.x. We anticipate removing support 2495 for Katana 2.x in the next release. 2496 2497### Removed 2498- Dependency on boost::filesystem 2499 (Issue: [#679](https://www.github.com/PixarAnimationStudios/USD/issues/679)) 2500- Ability to read pre-xformOp transform attributes on UsdGeomXformable prims. 2501- UsdShadeMaterial::CreateMaterialFaceSet, GetMaterialFaceSet, 2502 HasMaterialFaceSet functions. 2503- UsdGeomCollectionAPI schema. 2504 2505### Fixed 2506Build: 2507- Detection of Visual Studio on non-English platforms in build_usd.py. 2508 (Issue: [#613](https://www.github.com/PixarAnimationStudios/USD/issues/613), 2509 Issue: [#697](https://www.github.com/PixarAnimationStudios/USD/issues/697)) 2510 2511USD: 2512- Error when composing prims with both direct and ancestral specializes arcs. 2513- Incorrect strength ordering when composing specializes arcs declared across 2514 an internal reference arc. 2515- UsdAttribute::GetConnections and UsdRelationship::GetTargets could return 2516 incorrect paths in cases involving nested instancing and instance proxies 2517 inside of masters. 2518- Corrupted values when parsing OSL string arrays in Sdr via sdrOsl plugin. 2519- Various fixes for UsdSkelSkinningQuery and UsdSkelAnimMapper. 2520- Incorrect results from UsdGeomBBoxCache::ComputeRelativeBound. 2521- UsdGeomPointInstancer enums in Python are now properly scoped under 2522 UsdGeom.PointInstancer instead of UsdGeom. 2523 2524Imaging: 2525- GlfDrawTarget::_BindAttachment could leave a different framebuffer bound 2526 than what was bound before calling the function. 2527- Multiple GLSL shader fixes to allow Hydra GL to render correctly with Intel 2528 GPUs. 2529- Errors when trying to use usdview on macOS due to incorrect handling of 2530 unsupported Hydra renderers. When no supported renderers are found, usdview 2531 will fall back to the legacy renderer. 2532- Missing symbol exports in UsdVolImaging that could cause build errors on 2533 Windows. (PR: [#742](https://www.github.com/PixarAnimationStudios/USD/pull/742)) 2534- Regression in usdview that caused the "Redraw On Frame Scrub" option to 2535 always be in effect. 2536 (Issue: [#734](https://www.github.com/PixarAnimationStudios/USD/issues/734)) 2537 2538Alembic plugin: 2539- Alembic curve basis, type, and wrap were being converted to varying 2540 attributes in USD instead of uniform. 2541 2542Houdini plugin: 2543- Incorrect display in Tree View panel when unimporting the top-most prim. 2544- USD Reference ROP behavior when updating or removing an existing reference. 2545- Various compilation errors with different Houdini versions. 2546- Incorrect default value for horizontal aperture offset in USD camera node. 2547- Vertex attributes on meshes with rightHanded winding order. 2548 (Issue: [#631](https://www.github.com/PixarAnimationStudios/USD/issues/631), 2549 PR: [#632](https://www.github.com/PixarAnimationStudios/USD/pull/632)) 2550 2551Maya plugin: 2552- Incorrect name conflict error on export when stripping namespaces and merging 2553 transform and shape nodes. 2554 (PR: [#683](https://www.github.com/PixarAnimationStudios/USD/pull/683)) 2555 2556## [19.01] - 2018-12-14 2557 2558### Added 2559USD: 2560- usdresolve utility for checking the results of asset resolution at the 2561 command line. (PR: [#609](https://www.github.com/PixarAnimationStudios/USD/pull/609)) 2562- SdfFileFormat::FindAllFileFormats and FindAllFileFormatExtensions 2563 for querying available file formats. 2564 (PR: [#532](https://www.github.com/PixarAnimationStudios/USD/pull/532)) 2565- Option to UsdGeomBBoxCache to ignore visibility. 2566 2567Imaging: 2568- Render settings API to HdRenderDelegate. ("Enable Tiny Prim Culling" is the 2569 first example for Hydra GL) 2570- Support for UDIM textures in Hydra GL. 2571 (PR: [#597](https://www.github.com/PixarAnimationStudios/USD/pull/597)) 2572- Blending controls to HdRenderPassState for initial transparency support in 2573 Hydra GL. 2574- Ability to specify backend when starting usdview via "--renderer" parameter. 2575- Optional "Draw Mode" column to prim browser in usdview that provides control 2576 of model draw modes. (texture cards, bbox, etc.) 2577 2578Houdini plugin: 2579- Optional layer scale, layer offset, and target prim parameters to the 2580 USD Reference ROP. 2581- Option on USD Output ROP to use or ignore obj-level transforms. 2582- Support for exporting ramp parameters in OSL shader networks. 2583 2584Katana plugin: 2585- "info.usd.outputSession" attribute authored by PxrUsdIn. This is a sibling 2586 to "info.usd.session" but is not affected by the translation of PxrUsdIn's 2587 old "variants" parameter into session data. It acts as a more stable session 2588 cache key for external apps to use. 2589- "forceArrayForSingleValue" parameter that allows PxrUsdInAttributeSet to 2590 author 1-length arrays. 2591 2592Maya plugin: 2593- Support for instancing USD reference assemblies in instancers. 2594 2595### Changed 2596Build: 2597- Symbols for wrapping functions are no longer exported from modules 2598 to avoid issues with using RTLD_GLOBAL in Python. 2599 (Issue: [#641](https://www.github.com/PixarAnimationStudios/USD/issues/641)) 2600- Updated minimum required version of GLEW to 2.0.0. 2601 2602USD: 2603- Numerous fixes and cleanup changes throughout to improve performance, 2604 remove dead code, convert code to more modern patterns, and remove 2605 unneeded uses of boost. 2606- Replaced safe-bool idiom with explicit bool operator in several places. 2607- Improved performance of setting and erasing time samples in .usda 2608 layers from linear complexity to logarithmic. 2609- Improved error messages when attempting to read a .usdz files using 2610 compression or encryption. 2611- Various improvements to UsdSkel documentation and API. 2612- Changed scene description name for UsdSkelBindingAPI from "BindingAPI" 2613 to "SkelBindingAPI" to distinguish it from other binding API schemas. 2614 2615Imaging: 2616- Several improvements to the handling of AOVs in Hydra. 2617- Simplified class hierarchy in usdImagingGL. The primary API entry point 2618 is now UsdImagingGLEngine. 2619- Better performance for animated textures and large numbers of invisible 2620 prims in Hydra. 2621- Optimized batch removal of prims in Hydra and UsdImaging. 2622- Better handling of edits made in the interpreter in usdview. 2623- Mesh normals are suppressed when the subdivision scheme is something 2624 other than "none". 2625- The default stb-based image reader now extracts gamma information from 2626 .png images. 2627- Functionality specific to the prim browser in usdview have been moved 2628 to a browser-specific menu bar with "Navigation" and "Show" menus. 2629- Property browser in usdview now shows resolved material bindings and 2630 inherited primvars. 2631 2632 Maya plugin: 2633- The name of the scope for exported material prims can now be customized 2634 in the UI or via the "materialsScopeName" parameter to usdExport. The 2635 default scope name is "Looks", matching the previous behavior. 2636- Refactoring and cleanup in preparation for shading export support. 2637 2638### Removed 2639Build: 2640- Build-time dependency on Python. 2641 (Issue: [#605](https://www.github.com/PixarAnimationStudios/USD/issues/605), 2642 PR: [#615](https://www.github.com/PixarAnimationStudios/USD/pull/615)) 2643 2644Imaging: 2645- HdSceneTask in favor of HdTask. 2646- UsdImagingGL and UsdImagingGLHdEngine. 2647 2648### Fixed 2649USD: 2650- Incorrect composition error in cases involving internal sub-root references 2651 and variants. 2652 (Issue: [#677](https://www.github.com/PixarAnimationStudios/USD/issues/677)) 2653- Regression that caused prims to sometimes be composed incorrectly. 2654- Missing symbol exports that could cause build errors on Windows. 2655 (PR: [#623](https://www.github.com/PixarAnimationStudios/USD/pull/623), 2656 Issue: [#703](https://www.github.com/PixarAnimationStudios/USD/issues/703), 2657 Issue: [#704](https://www.github.com/PixarAnimationStudios/USD/issues/704), 2658 Issue: [#705](https://www.github.com/PixarAnimationStudios/USD/issues/705)) 2659- Incorrect type validation and conversion when authoring metadata via Python 2660 that could lead to invalid scene description. 2661 (Issue: [#529](https://www.github.com/PixarAnimationStudios/USD/issues/529)) 2662- Various issues in usdzip and related usdUtils API when processing references 2663 for packaging into a .usdz file. 2664 2665Imaging: 2666- Batch aggregation for prims with face-varying primvars. 2667- Drawing coord initialization of instance primvar slots. 2668- Deep batch validation only happens when needed, improving performance. 2669- Crash in cases where a prim is removed from a stage and a collection 2670 targeting that prim is updated in the same round of changes. 2671 (PR: [#685](https://www.github.com/PixarAnimationStudios/USD/pull/685)) 2672- Crash when reading half-float .exr images in the OpenImageIO plugin. 2673 (Issue: [#581](https://www.github.com/PixarAnimationStudios/USD/issues/581)) 2674- Incorrect handling of edits to material bindings. 2675 2676Houdini plugin: 2677- Issue where visibility and purpose attributes weren't properly inherited 2678 on import. 2679 (Issue: [#649](https://www.github.com/PixarAnimationStudios/USD/issues/649)) 2680- Crash when running ginfo on a USD file. 2681 (Issue: [#673](https://www.github.com/PixarAnimationStudios/USD/issues/673), 2682 PR: [#674](https://www.github.com/PixarAnimationStudios/USD/pull/674)) 2683- Issue where imported string attribute values could be incorrect. 2684 (Issue: [#653](https://www.github.com/PixarAnimationStudios/USD/issues/653)) 2685 2686Katana plugin: 2687- Issues with reading UsdGeomPointInstancers 2688 - Regression in instance transform computation with masked instances. 2689 - Prototype transforms are cleared out on the Katana side since they are 2690 folded in when computing instance transforms. 2691 2692Maya plugin: 2693- Reference assemblies weren't being drawn in "playback" representation. 2694 (Issue: [#675](https://www.github.com/PixarAnimationStudios/USD/issues/675)) 2695- Issue where HdImagingShape prevented nodes from being reordered. 2696 2697## [18.11] - 2018-10-10 2698 2699### Added 2700USD: 2701- [usdVol] UsdVol schema for representing volumes. 2702 (PR: [#567](https://www.github.com/PixarAnimationStudios/USD/pull/567)) 2703- [usdShade] Ability to define shaders in the shader definition registry 2704 using UsdShade. 2705- [usdShaders] Shader definition registry plugin for core nodes defined in 2706 the UsdPreviewSurface specification. 2707 2708Imaging: 2709- [hd, usdImaging] Hydra support for UsdVol schema. 2710 (PR: [#567](https://www.github.com/PixarAnimationStudios/USD/pull/567)) 2711- [hd, hdSt] Topology visibility operations for meshes in Hydra. 2712- [hd, hdSt] Support for inverting the depth test of a draw target. 2713- [hd, hdSt] "Flat normals" computed buffer source for meshes. 2714- [hdx] ResolveNearestToCenter pick hit resolution method for ray picking. 2715 2716- [usdview] Menu for switching AOVs for supported backends. 2717- [usdview] Menu for backend-specific settings. 2718 2719Alembic plugin: 2720- [usdAbc] Behavior where an Xform with a single geometry or camera in an 2721 Alembic file would be collapsed into a single prim in USD can now be disabled 2722 by setting the environment variable `USD_ABC_XFORM_PRIM_COLLAPSE` to 0. 2723 (PR: [#527](https://www.github.com/PixarAnimationStudios/USD/pull/527)) 2724 2725Maya plugin: 2726- [usdMaya] Display filter for USD proxy shapes. 2727- [usdMaya, pxrUsdMayaGL] pxrHdImagingShape node that reduces overhead when 2728 imaging scenes with many Hydra-backed shapes. 2729- [pxrUsdMayaGL] Support for Maya lights casting shadows between Hydra shapes, 2730 and Hydra shapes to Maya shapes, but not Maya shapes to Hydra shapes. 2731 2732Houdini plugin: 2733- [gusd] Experimental build support for Houdini plugin on Windows. 2734- [OP_gusd] Multi-seg export to USD output ROP. 2735 2736### Changed 2737- Numerous fixes and cleanup changes throughout to improve performance, 2738 convert code to more modern patterns, and remove unneeded uses of boost. 2739 (PR: [#373](https://www.github.com/PixarAnimationStudios/USD/pull/373), 2740 PR: [#453](https://www.github.com/PixarAnimationStudios/USD/pull/453), 2741 PR: [#481](https://www.github.com/PixarAnimationStudios/USD/pull/481), 2742 PR: [#484](https://www.github.com/PixarAnimationStudios/USD/pull/484), 2743 PR: [#488](https://www.github.com/PixarAnimationStudios/USD/pull/488)) 2744 2745USD: 2746- [usd] UsdAPISchemaBase is now an abstract base class as originally intended. 2747- [usdGeom] Improved performance of UsdGeomPointBased::ComputeExtent. In one 2748 example, this provided a ~30% improvement. 2749 (PR: [#588](https://www.github.com/PixarAnimationStudios/USD/pull/588)) 2750- [usdGeom] Improved performance of computing extents for UsdGeomPointInstancer. 2751 In one example with >5 million instances, extent computation time decreased 2752 from ~25 seconds to ~3 seconds. 2753- [usdSkel] UsdSkelBakeSkinning bakes skinning at additional time samples 2754 based on stage's configured sampling rate. 2755- [usdedit] Opening a .usdz file now forces read-only mode. 2756- [usdzip] "-l" or "-d" arguments will now provide information about existing 2757 .usdz files. 2758- [usdzip] ARKit compliance checks now require valid sources for shader inputs 2759 with connections and valid prims and/or collections for material bindings. 2760 2761Imaging: 2762- [hd] Improved Hydra AOV API. 2763- [hd] Split reprs into the topology indices they affect. 2764- [hd] Properly set up both the shadow projection and view matrices. 2765 (PR: [#583](https://www.github.com/PixarAnimationStudios/USD/pull/583)) 2766- [hd] Optimization to not run garbage collection if a texture hasn't change. 2767- [hd, hdSt, usdImaging] Update wrap mode fallback behavior to useMetadata. 2768- [hdx] Improved shadow support in HdxTaskController. 2769 (PR: [#541](https://www.github.com/PixarAnimationStudios/USD/pull/541)) 2770- [hdx] "Enable Hardware Shading" entry point is now "Enable Scene Materials". 2771- [hdSt] Support to generate GLSL-compatible names for resources/primvars. 2772- [usdImagingGL] Better support for animated textures. 2773 (PR: [#488](https://www.github.com/PixarAnimationStudios/USD/pull/488)) 2774- [usdview] Better error reporting if an unsupported backend is selected. 2775 (PR: [#635](https://www.github.com/PixarAnimationStudios/USD/pull/635)) 2776- [hdEmbree] Improved AO sampling (cosine-weighted sampling, stratified AO 2777 samples LHS). 2778 2779Maya plugin: 2780- [pxrUsdMayaGL] Many performance improvements in the Hydra batch renderer. 2781- [usdMaya, pxrUsdMayaGL] Using USD in live surface uses the normal at the 2782 snap point. 2783- [usdMaya, pxrUsdTranslators] Various code cleanup in USD exporter. 2784 2785Katana plugin: 2786- [usdKatana] Use bracketing sample closest to shutter open/close if no frames 2787 found in shutter interval. 2788- [usdKatana] Honor UsdStage's authored timeCodesPerSecond and framesPerSecond. 2789 If they differ, Katana will operate in frames, with current time, motion 2790 samples, and shutter interval scaled appropriately. 2791 2792Houdini plugin: 2793- [gusd] Rebind materials when creating sub-root references. 2794- [gusd] Optimizations in handling of stage mask operations. 2795- [OP_gusd] USD output ROP now allows binding to shaders referenced from other 2796 models. 2797 2798### Removed 2799 2800Imaging: 2801- [hd] Removed Repr requirements from GetRenderTag API. 2802 2803### Fixed 2804Build: 2805- [cmake] User-specified CMAKE_MODULE_PATH was being ignored during build. 2806 (PR: [#614](https://www.github.com/PixarAnimationStudios/USD/pull/614)) 2807- [cmake] Installed headers could take precedence over source headers, leading 2808 to build failures. 2809 (Issue: [#83](https://www.github.com/PixarAnimationStudios/USD/issues/83)) 2810 2811USD: 2812- [tf] TfEnvSetting crash on MSVC 2017. 2813- [ar] ArDefaultResolver::AnchorRelativePath did not call IsRelativePath on 2814 derived resolvers. 2815 (PR: [#426](https://www.github.com/PixarAnimationStudios/USD/pull/426)) 2816- [sdf] SdfCopySpec did not handle copying prim specs to variants and vice-versa. 2817- [sdf] Incorrect notification was sent when removing subtrees of inert specs. 2818- [usd] Prim payload was not automatically loaded when a deactivated ancestor 2819 prim with a payload was activated. 2820 (Issue: [#604](https://www.github.com/PixarAnimationStudios/USD/issues/604)) 2821- [usd] Incorrect lists of time samples would be returned in certain cases 2822 with value clips. 2823- [usd, usdzip] .usdz files were not fully compliant with the zip file format 2824 specification. 2825- [usdUtils, usdzip] Creating an ARKit .usdz file with a .usda asset would 2826 create an invalid file. 2827- [usdMtlx] MaterialX plugin build failures on Windows and macOS. 2828 (Issue: [#611](https://www.github.com/PixarAnimationStudios/USD/issues/611)) 2829 2830Imaging: 2831- [hdx] Picking with disabled scene materials generating shader errors. 2832- [hdSt] Fix immediate draw batch invalidation on buffer migration. 2833- [hdSt] Fix garbage collection on buffer migration. 2834- [hdSt] Bindless texture loading not being deferred. 2835- [usdImaging] Wrong transforms were being used when using usdLux light 2836 transforms 2837 (Issue: [#612](https://www.github.com/PixarAnimationStudios/USD/issues/612)). 2838- [usdImaging] Fix for usdImaging's TextureId not accounting for origin. 2839 2840Houdini plugin: 2841- [gusd] Several fixes for building with Houdini 17. 2842 (PR: [#549](https://www.github.com/PixarAnimationStudios/USD/pull/549)) 2843- [gusd] Several fixes for stale caches and crashes. 2844- [gusd] Potential PackedUSD transform issues in Houdini 16.5. 2845 2846## [18.09] - 2018-08-07 2847 2848This release includes several major new features and changes, including: 2849 - .usdz file format for packaging assets into a single file 2850 - Introduction of UsdPreviewSurface 2851 - Switch to calendar-based versioning scheme for USD libraries 2852 2853### Added 2854- Build: 2855 - build_usd.py can be given custom arguments for building libraries via the 2856 `--build-args` option. 2857 - Option to disable building usdview by specifying `PXR_BUILD_USDVIEW=OFF` 2858 when running cmake or `--no-usdview` when running build_usd.py. 2859 - Allow specifying `Boost_USE_STATIC_LIBS` to cmake on Windows. Note that 2860 static boost libraries may lead to issues with Python bindings. 2861 (Issue: [#407](https://www.github.com/PixarAnimationStudios/USD/issues/407)) 2862 2863- USD: 2864 - ArAsset and ArResolver::OpenAsset interfaces allowing resolvers to control 2865 how data for a given asset is accessed. 2866 - "Package" asset and layer concepts to Ar and Sdf, including 2867 "package-relative" asset path syntax for addressing assets within packages. 2868 - sdffilter utility for inspecting and summarizing the contents of a layer. 2869 - .usdz file format. This format allows multiple assets (including layers, 2870 textures, etc.) to be packaged into a single file that can be consumed by 2871 USD without being unpacked to disk. These files can be created via the 2872 "usdzip" command-line utility or via APIs like UsdZipFileWriter and 2873 UsdUtilsCreateNewUsdzPackage. 2874 - UsdStage::GetObjectAtPath for retrieving a generic UsdObject. 2875 (PR: [#390](https://www.github.com/PixarAnimationStudios/USD/pull/390)) 2876 - UsdCollectionAPI can represent collections that include all paths or exclude 2877 some paths but include all others via the new "includeRoot" attribute. 2878 - Support for "sourceAsset" and "sourceCode" implementation sources in 2879 UsdShadeShader. 2880 - Ndr and Sdr libraries that provide a registry for shader definitions that 2881 can be extended via plugins. 2882 - sdrOsl plugin for populating shader definition registry from OSL 1.8.12. 2883 OSL support must be enabled by specifying `PXR_ENABLE_OSL_SUPPORT=TRUE` 2884 when running cmake. 2885 - usdMtlx plugin containing USD file format and shader definition registry 2886 plugins based on MaterialX 1.36.0. MaterialX support must be enabled by 2887 specifying `PXR_BUILD_MATERIALX_PLUGIN=TRUE` when running cmake. 2888 - Initial UsdSkel schema for blend shapes, which are not yet factored into 2889 computed deformation. 2890 2891- Imaging: 2892 - Per-prim adaptive refinement enabled via materials in hdSt. 2893 - Preliminary AOV support in Hydra with sample implementation in Embree 2894 plugin. 2895 - HdRenderThread utility class to enable render delegates to render in 2896 background threads. The Embree plugin uses this class as an example. 2897 - Support for scene-authored normals on meshes. 2898 2899- UsdImaging: 2900 - Light linking support. 2901 - Initial support for USD material preview nodes. For more details, see: 2902 http://graphics.pixar.com/usd/docs/UsdPreviewSurface-Proposal.html 2903 2904 Currently unimplemented features include: 2905 - Support for automatically computed tangents when normal mapping. Primvars 2906 must be supplied. 2907 - Handling for ior (index or refraction). 2908 2909- Alembic plugin: 2910 - Support for TextureCoordinate role and value types. 2911 2912- Maya plugin: 2913 - Initial support for exporting .usdz files. 2914 - Support for importing and exporting volume and displacement in "pxrRis" 2915 shading mode. 2916 - pxrUsdPointBasedDeformerNode - an animation cache deformer that allows users 2917 to pose a Maya mesh based on a UsdGeomPointBased prim. 2918 - Option to apply Euler filtering to transforms during export. 2919 (PR: [#299](https://www.github.com/PixarAnimationStudios/USD/pull/299)) 2920 - Option to filter out certain Maya node types during export. 2921 (PR: [#475](https://www.github.com/PixarAnimationStudios/USD/pull/475)) 2922 2923- Katana plugin: 2924 - Support for TextureCoordinate role and value types. 2925 - Support for importing inherit paths metadata as a info.usd group attribute 2926 - "additionalLocations" parameter to PxrUsdInVariantSelect 2927 - "asArchive" option to PxrUsdIn. When enabled, a "usd archive" location will 2928 be created rather than loading the USD data directly. This is intended for 2929 passing along to renderers which support reading USD natively. 2930 - PxrUsdIn supports a "sharedLooksCacheKey" attribute to permit sharing cached 2931 USD shading information across multiple references/instances which are known 2932 to be identical from a pipeline standpoint. 2933 2934- Houdini plugin: 2935 - Support import of Scope prims. 2936 2937### Changed 2938- Build: 2939 - USD resource files are now installed into <prefix>/lib/usd instead of 2940 <prefix>/share/usd/plugins to bring them closer to the installed libraries. 2941 - OpenGL dependency in imaging is now optional and may be disabled by 2942 specifying `PXR_ENABLE_GL_SUPPORT=FALSE` when running cmake. This will 2943 disable all GL-based functionality, including usdview. 2944 - OpenImageIO dependency imaging is now optional and is disabled by default. 2945 Support must be enabled by specifying `PXR_BUILD_OPENIMAGEIO_PLUGIN=TRUE` 2946 when running CMake or `--openimageio` when running build_usd.py. 2947 - build_usd.py on Windows will now use powershell to download dependencies 2948 if it's available to avoid TLS 1.2 issues. 2949 (Issue: [#449](https://www.github.com/PixarAnimationStudios/USD/issues/449)) 2950 - build_usd.py now directs users to install PySide2 via pip on MacOS. 2951 2952- USD: 2953 - Numerous fixes and cleanup changes throughout to improve performance, 2954 convert code to more modern patterns, and remove unneeded uses of boost. 2955 - ArGetResolver no longer returns an instance of the ArResolver subclass used 2956 for asset resolution. Clients can use ArGetUnderlyingResolver in the special 2957 cases where access to the exact subclass is necessary. 2958 - ArResolver context and scoped cache functions are now public and have been 2959 renamed to match convention. Resolvers that override these functions will 2960 need to be updated. 2961 - ArDefaultResolver default context for an asset now includes the directory 2962 of the asset in its search path. 2963 - Optimizations to prim change processing in UsdStage. In one example, 2964 processing time for adding new prims decreased ~50%. 2965 - New .usdc files now default to version 0.7.0, which includes compression 2966 features introduced in earlier releases. These files cannot be read in USD 2967 releases prior to v0.8.4. Users can revert to writing older versions by 2968 setting the environment variable `USD_WRITE_NEW_USDC_FILES_AS_VERSION` 2969 to an older version. 2970 - Several changes to provide cleaner and more detailed runtime error messages. 2971 - Better support for generating code for properties of multiple-apply API 2972 schemas in usdGenSchema. 2973 - Schema types are now specified using the UsdSchemaType enum instead of 2974 individual flags. 2975 - "expansionRule" attribute for UsdCollectionAPI is now optional; collections 2976 are created simply by calling UsdCollectionAPI::ApplyCollection. 2977 - UsdGeomBBoxCache's bounds computation now includes all defined prims, 2978 including those with no type specified. 2979 - UsdRiMaterialAPI now writes standardized "ri:surface" output by default 2980 instead of deprecated "ri:bxdf". 2981 - UsdRiStatementsAPI now writes ri attributes as primvars by default. 2982 - Renamed UsdSkelPackedJointAnimation schema to UsdSkelAnimation 2983 - Renamed UsdSkelBakingSkinningLBS function to UsdSkelBakeSkinning 2984 - Numerous additional fixes and changes to UsdSkel schemas and APIs. 2985 2986- Imaging: 2987 - Several API cleanup changes in HdSprim/HdBprim/HdRprim. 2988 - HdRenderDelegate::CanComputeMaterialNetworks has been replaced by 2989 GetMaterialBindingPurpose, which has a default value of "preview". 2990 - Improved handling of fallback texturing behavior when texture inputs are 2991 missing from a material. 2992 - .png, .jpg, .bmp, .tga, and .hdr images are now handled by a built-in 2993 image reader based on stb_image. 2994 - Texture loading is deferred until needed. 2995 - Truncate mesh vertex primvar data to expected length if larger than expected. 2996 - Improved ptex rect packing performance. In one large test case, processing 2997 time decreased from ~600s to ~40s. 2998 2999- UsdImaging: 3000 - Avoid loading custom shaders and textures when the "Enable Hardware Shading" 3001 option is disabled in usdview. 3002 - Default values for wrapS/wrapT match the proposed value in the preview 3003 material spec. Also adds support for mirrored wrapS/wrapT. 3004 - Scene lights are now enabled by default. This can be disabled by setting 3005 the environment variable `USDIMAGING_ENABLE_SCENE_LIGHTS` to 0. 3006 - UsdShadeMaterialAPI is now used instead of UsdRi to look up material 3007 networks. 3008 3009- Alembic plugin: 3010 - Alembic writer now prefers writing to the "st" attribute instead of "uv". 3011 (PR: [#463](https://www.github.com/PixarAnimationStudios/USD/pull/463)) 3012 3013- Maya plugin: 3014 - MAYA_SCRIPT_PATH and XBMLANGPATH environment variable settings have changed 3015 due to new resource file install location documented above. Refer to Maya 3016 plugin documentation for new values. 3017 - Large refactoring and cleanup of usdMaya. USD importers and exporters for 3018 built-in Maya nodes have been moved to pxrUsdTranslators plugin. 3019 - Proxy shape now redraws in response to changes on UsdStage. 3020 - Diagnostic messages are now batched together for better reporting behavior 3021 and to prevent log spewage. 3022 - Improved primvar export. 3023 (PR: [#330](https://www.github.com/PixarAnimationStudios/USD/pull/330)) 3024 - Camera shake now applied to USD cameras on export. 3025 (PR: [#366](https://www.github.com/PixarAnimationStudios/USD/pull/366)) 3026 3027### Deprecated 3028- USD: 3029 - UsdSkelPackedJointAnimation schema in favor of UsdSkelAnimation 3030 - Specialized RIS and RSL shader schemas in UsdRi (e.g. UsdRisPattern and 3031 UsdRisBxdf) in favor of generic UsdShadeShader prims. 3032 3033### Removed 3034- Build: 3035 - boost::regex dependency. 3036 3037- USD: 3038 - ArResolver::CreateDefaultContextForDirectory to better accommodate asset 3039 systems that are not file-system based. 3040 - SdfExtractExternalReferences. UsdUtilsExtractExternalReferences can be used 3041 as an alternative. 3042 - UsdLuxLinkingAPI, in favor of UsdCollectionAPI to represent light linking. 3043 3044### Fixed 3045- Build: 3046 - Fixed issues with using Visual Studio 2017 in build_usd.py. 3047 - Issue preventing use of NMake generator on Windows. 3048 (PR: [#519](https://www.github.com/PixarAnimationStudios/USD/pull/519)) 3049 - Several fixes for static library builds. 3050 3051- USD: 3052 - Bug where SdfLayer::GetDisplayName would return an empty string for 3053 anonymous layers if the tag contained a ":". 3054 (PR: [#440](https://www.github.com/PixarAnimationStudios/USD/pull/440)) 3055 - Bug where SdfLayer::UpdateExternalReferences would not handle variants and 3056 payloads correctly. 3057 - Incorrect load state handling in UsdStage for payloads introduced across 3058 sub-root references, inherits, and specializes arcs. 3059 - Incorrect value clip time mapping during value resolution on UsdStage. 3060 - Change processing bug when adding a new inert prim spec. 3061 - Load/unload change processing bug with nested instances on UsdStage. 3062 - Crash when opening a UsdStage with a UsdStagePopulationMask containing 3063 instance prims. 3064 (Issue: [#497](https://www.github.com/PixarAnimationStudios/USD/issues/497)) 3065 - Test failures when USD_EDITOR environment variable is set. 3066 (Issue: [#505](https://www.github.com/PixarAnimationStudios/USD/issues/505)) 3067 - Bug where non-constant primvars were inherited down namespace in 3068 UsdGeomPrimvarsAPI. 3069 3070- Imaging: 3071 - Triangulation/quadrangulation of face varying for refined meshes. 3072 - Several selection and picking issues. 3073 3074- UsdImaging: 3075 - Material binding to instanced prims. 3076 - Change processing for UsdShadeShader prims beneath UsdShadeMaterial prims. 3077 3078- Alembic plugin: 3079 - Texture coordinate indices are now preserved. 3080 (PR: [#520](https://www.github.com/PixarAnimationStudios/USD/pull/520)) 3081 3082- Katana plugin: 3083 - Several asset resolution fixes. 3084 (Issue: [#535](https://www.github.com/PixarAnimationStudios/USD/issues/535)) 3085 - Bug preventing correct inheritance of motion sample times overrides as 3086 authored by PxrUsdInDefaultMotionSamples and PxrUsdInMotionOverrides in 3087 Katana plugin. 3088 3089- Houdini plugin: 3090 - Fixed several display and update issues with treeview panel. 3091 - Fixed bug in batched loading of masked prims. 3092 3093## [0.8.5a] - 2018-05-21 3094 3095### Fixed 3096- Fixed broken URL in build_usd.py for downloading libtiff. 3097 (Issue: [#498](https://www.github.com/PixarAnimationStudios/USD/issues/498)) 3098 3099## [0.8.5] - 2018-05-07 3100 3101### Added 3102- New 'trace' library providing performance profiling functionality. 3103- API to Ar for resolver implementations that wrap around other resolvers. 3104- TextureCoordinate role and TexCoord{2,3}{h,f,d}{Array} value types to Sdf 3105 to indicate attributes that represent UV(W) texture coordinates. 3106- UsdUtilsSparseValueWriter and UsdUtilsSparseAttrValueWriter utility classes 3107 for authoring attribute values sparsely. 3108- UsdGeomPrimvar::GetIndicesAttr API for indexed primvars. 3109- UsdGeomPrimvarsAPI schema for accessing primvars, including primvar 3110 values inherited down namespace. This is intended as an eventual replacement 3111 for the primvar API on UsdGeomImageable. 3112- API to UsdShadeMaterial to support render context-specific terminal outputs 3113 and core support for three universal render context outputs: surface, 3114 displacement, and volume. 3115- Time-sampling support for UsdGeomPointInstancer via new methods for 3116 computing extents and instance transforms at multiple times. 3117- Finalize method for sprims and bprims in Hydra. 3118- Time-sampling support in Hydra for geometry instancing. 3119- Maya plugin users can specify if colors coming from Maya are linear via the 3120 `PIXMAYA_LINEAR_COLORS` environment variable. 3121- Support for import/export with new TextureCoordinate role in Maya plugin. 3122- Support for cards drawMode in USD reference assembly in Maya plugin. 3123- Support for LiveSurface with proxy shapes in Maya plugin. 3124- Support for importing UsdSkel schemas and exporting locators and 3125 particles in Maya plugin. 3126- Option for placing exported data in parent scope in Maya plugin. 3127- Initial support for session layer metadata in PxrUsdIn in Katana plugin. 3128- Support for reading in UsdLuxCylinderLight schemas in Katana plugin. 3129- Gusd Python bindings for Houdini plugin. 3130 3131### Changed 3132- USD now requires TBB version 4.4 Update 6 or later. 3133- Removed GLUT dependency for libtiff in build_usd.py. 3134 (Issue: [#402](https://www.github.com/PixarAnimationStudios/USD/issues/402)) 3135- build_usd.py will now use cURL to download dependencies if it's 3136 installed in the user's PATH. This can help avoid TLS v1.2 errors 3137 when downloading from certain sites. 3138 (Issue: [#449](https://www.github.com/PixarAnimationStudios/USD/issues/449)) 3139- Numerous documentation additions and fixes throughout the codebase. 3140- Improved performance of SdfCopySpec and UsdUtils stitching API; one test 3141 case showed a 35% speed improvement, from 160s to 118s. 3142- SdfLayer now uses the resolved path provided by Ar for a given identifier 3143 to determine the layer file format. 3144 (Issue: [#144](https://www.github.com/PixarAnimationStudios/USD/issues/144)) 3145- Simplified API for setting layer data in SdfFileFormat subclasses. 3146- Adding or removing invalid sublayers now results in composition errors. 3147- UsdStage::CreateNew and CreateInMemory now accept an InitialLoadSet argument. 3148 This controls whether new payloads are loaded automatically. 3149 (Issue: [#267](https://www.github.com/PixarAnimationStudios/USD/issues/267)) 3150- UsdStage::ExpandPopulationMask now considers attribute connections. 3151- UsdStage::Flatten now authors anchored asset paths in flattened results. 3152- UsdTraverseInstanceProxies() now includes instance proxy prims that pass the 3153 default predicate instead of all prims. 3154- .usdc files now support zero-copy array access, which can significantly 3155 improve performance. This feature is supported by all .usdc file 3156 versions, but may not be activated for certain files depending on their 3157 data alignment. In these cases, users can simply re-export the file 3158 to activate zero-copy access. 3159 3160 Users can set the environment variable `USDC_ENABLE_ZERO_COPY_ARRAYS` to 0 3161 to disable this feature. Users can also track cases where array data is 3162 copied due to modifications by setting the environment variable 3163 `VT_LOG_STACK_ON_ARRAY_DETACH_COPY` to 1. 3164- Other performance improvements in UsdStage composition. 3165- API schemas are now classified as either "applied" or "non-applied". See 3166 "Generating New Schema Classes" tutorial for more information. 3167- Behavior of UsdUtils stitching API can now be customized via callbacks. 3168- UsdShadeMaterialBindingAPI now issues a warning when computing resolved 3169 material bindings if prims with old "look:binding" relationships are found. 3170 This can be disabled by setting the environment variable 3171 `USD_SHADE_WARN_ON_LOOK_BINDING` to 0. 3172- UsdRiMaterialAPI now supports writing ri:surface outputs. ri:bxdf outputs are 3173 still written by default, but this can be disabled by setting the environment 3174 variable `USD_RI_WRITE_BXDF_OUTPUT` to 0. 3175- UsdRiStatementsAPI now supports encoding ri attibutes as primvars. This is 3176 disabled by default but can be enabled by setting the environment variable 3177 `USDRI_STATEMENTS_WRITE_NEW_ATTR_ENCODING` to 1. 3178- Additions and improvements to UsdLux and UsdSkel schemas. 3179- Hydra backends that consume full network materials now receive all primvars 3180 for all rprims, not just those with bound materials. 3181- Several improvements to primvar handling and picking infrastructure in Hydra. 3182- Several performance improvements in Hydra, especially for material bindings 3183 and scenes with heavy nesting of instances. 3184- Ongoing work on Hydra compute framework. 3185- Conformed Hydra API to use "Primvar" instead of "PrimVar". 3186- HdMaterialNetwork is now emitted in topological order. 3187- Redundant animation data is no longer written during Maya export. 3188- Katana plugin now allows parent scope names for materials other than "Looks". 3189 This can be enabled by setting the `USD_KATANA_ALLOW_CUSTOM_MATERIAL_SCOPES` 3190 environment variable to 1. 3191- Refactor material loading in Katana plugin so that material locations aren't 3192 computed all at once and site ops can run on each location individually. 3193- Improved construction of material terminal outputs in Katana plugin. 3194- Caching improvements in Houdini plugin to share USD stages between loaded 3195 primitives when possible. 3196- Improved error handling and reporting in Houdini plugin. 3197- USD stage masking in Houdini plugin can now be disabled via 3198 `GUSD_STAGEMASK_ENABLE` environment variable. 3199- Improved performance when opening USD stages which don't use "component" kind 3200 in their model hierarchy. 3201- Object-level transforms are now written at a higher-level scope than leaf 3202 primitives if possible in Houdini plugin. 3203 3204### Deprecated 3205- UsdGeomFaceSetAPI in favor of UsdGeomSubset. 3206- UsdGeomCollectionAPI in favor of UsdCollectionAPI. 3207 3208### Removed 3209- tracelite library, which has been replaced with the trace library. 3210- Conversions for Python's datetime and dependency on boost::date_time. 3211- Several unused classes and functions. 3212- usdHydra schemas. This functionality is being replaced with by a registry 3213 of shaders in a future release. 3214- API for ri:bxdf output on UsdRiMaterialAPI schema. ri:bxdf sources will still 3215 be returned by UsdRiMaterialAPI::GetSurface for backwards compatibility. 3216 3217### Fixed 3218- Build errors when using ninja. 3219- Error when extracting boost on Windows in build_usd.py. 3220 (Issue: [#308](https://www.github.com/PixarAnimationStudios/USD/issues/308)) 3221- The build now prefers Alembic library specified at cmake time over any 3222 Alembic library found in PATH. 3223 (Issue: [#409](https://www.github.com/PixarAnimationStudios/USD/issues/409)) 3224- Several compile-time warnings on clang and other compilers. 3225- Bug where list-op valued metadata was not emitted by UsdStage::Flatten. 3226- Missing notifications for master prims affected by metadata/property changes. 3227- Crash in UsdCollectionAPI::ApplyCollection when given an invalid collection 3228 name. (Issue: [#425](https://www.github.com/PixarAnimationStudios/USD/issues/425)) 3229- Change processing for changes to drawMode property in imaging. 3230- Numerous fixes to cards draw mode. 3231- Change processing bug when removing nested point instancers. 3232- Crashes in pxOsd due to incorrect authored crease data. 3233- Bug where usdview would not redraw after switching renderer. 3234- Crash in Alembic plugin when reading files with object names beginning 3235 with numerals. 3236- Change processing bug when reloading an Alembic layer. 3237 (Issue: [#429](https://www.github.com/PixarAnimationStudios/USD/issues/429)) 3238- Several crash bugs in Maya plugin. 3239- Material export bug in Maya plugin where the surface terminal was not 3240 being exported under the "ri" render context. This fix requires re-exporting 3241 any material networks exported from Maya using version 0.8.4. 3242- Prevent overwriting instance sources that resolve to the same master name 3243 in Katana plugin. 3244- Path resolution issue in Houdini plugin. 3245- Miscellaneous bug fixes in Houdini plugin. 3246 3247## [0.8.4] - 2018-03-05 3248 3249### Added 3250- The PXR_PLUGINPATH_NAME environment variable name may be changed by 3251 specifying `PXR_OVERRIDE_PLUGINPATH_NAME=<name>` when running cmake. 3252- Example sendmail plugin for usdview, located at 3253 extras/usd/examples/usdviewPlugins/sendMail.py 3254- ArDefaultResolverContext, a context object for the ArDefaultResolver asset 3255 resolution implementation that allows additional search paths to be used 3256 during asset resolution. 3257- Users can now query the UsdNotice::ObjectsChanged notice for the changed 3258 scene description fields that affected the reported objects. 3259- UsdAPISchemaBase base class for all API schemas. 3260- All UsdGeomBoundable schemas in usdGeom now have functions for computing 3261 extents. These functions are also used when calling the general 3262 UsdGeomBoundable::ComputeExtentFromPlugins method. 3263- UsdLuxCylinderLight schema. 3264- Significant additions to edge and point selection and highlighting 3265 capabilities in Hydra. 3266- Initial support for UsdSkel bones in usdImaging. 3267- Initial support for exporting joints and skin clusters using the UsdSkel 3268 schema in the Maya plugin. 3269- Documentation for third party plugin code is now included in the 3270 doxygen build. 3271 3272### Changed 3273- build_usd.py no longer checks for pyside-uic or boost::python if Python 3274 support is disabled, and no longer builds OpenImageIO's Python bindings. 3275- Updated moduleDeps.cpp files to only register direct library dependencies. 3276 This makes it easier for users to generate their own file for custom schemas. 3277- ArDefaultResolver now allows search paths like "Dir/File.usd" to be anchored 3278 to other paths via AnchorRelativePath. During composition, these asset paths 3279 will be resolved relative to the layer where they were authored before 3280 falling back to the previous search path behavior. 3281- Updates to VtArray and .usdc code in preparation for zero-copy functionality. 3282- Inherit and specializes arcs to non-existent prims are no longer considered 3283 composition errors. 3284- Apply method on API schemas have been moved to UsdAPISchemaBase and now 3285 require a UsdPrim. Also improved documentation. 3286- Property queries on UsdPrim now accept a predicate for filtering results. 3287- UsdPrim::HasAPI now accepts an instance name argument to query if a prim has 3288 a particular instance of a multiple-apply API schema has been applied. 3289- Adding or removing an inert prim spec no longer causes affected prims to 3290 be resynced. These prims are now reported as "changed info only" in the 3291 corresponding UsdNotice::ObjectsChanged notice. 3292- UsdNotice::ObjectsChanged::GetResyncedPaths and GetChangedInfoOnlyPaths now 3293 return a custom range object instead of a SdfPathVector. 3294- Performance optimizations for querying properties on UsdPrim. 3295- Replaced UsdCollectionAPI::AddPrim/RemovePrim with IncludePath/ExcludePath. 3296- UsdGeomBoundable::ComputeExtentFromPlugins now accepts an optional 3297 transform matrix, which may be used to provide more accurate bounds. 3298- UsdGeomBBoxCache now computes extents for all UsdGeomBoundable schemas. 3299- Performance optimizations in UsdShadeMaterialBindingAPI. 3300- Numerous changes and fixes to UsdSkel schemas. 3301- Significantly improved curve rendering in Hydra. 3302- Many improvements towards the goal of getting modern UsdShade materials 3303 through Hydra to various kinds of backends. 3304- Performance improvements to hydra gather phase via multi-threading and other 3305 optimizations. 3306- Changed complexity options in usdview to prevent users from inadvertently 3307 bumping the complexity value too high and hanging the application. 3308- Several tweaks and improvements to usdview UI. 3309- Refactored Maya/Hydra batch renderer to improve performance for imaging USD 3310 proxy shape nodes. 3311 3312### Removed 3313- UsdShadeLook schema. This has been replaced by UsdShadeMaterial. 3314 Material bindings authored using the "look:binding" relationship are no 3315 longer respected. 3316 3317### Fixed 3318- Various typo and compiler warning fixes throughout the codebase. 3319- Fixed bug where build_usd.py would not use the CMake generator specified at 3320 the command line. 3321- Fixed crash in Apply method on API schemas. 3322- Fixed several bugs in UsdShadeMaterialBindingAPI::ComputeBoundMaterial. 3323- Changing the population mask for a UsdStage now correctly releases resources 3324 used by objects that have been excluded from the stage. 3325- Fixed quadrangulation bug in Hydra with handling topology with degenerate or 3326 hole faces. 3327- Fixed patch param refinement for Loop meshes. 3328- Several fixes to the nascent Hydra lights pipeline. 3329- Fixed bug in the usdExport AlembicChaser in the Maya plugin where primvars 3330 that match the primvarprefix do not get exported. They are now exported with 3331 constant interpolation, and using _AbcGeomScope is no longer required. 3332- Fixed bug in Katana plugin where infinite recursion would occur in pxrUsdIn 3333 when sources were outside the scope of the point instancer. 3334 (Issue: [#286](https://www.github.com/PixarAnimationStudios/USD/issues/286)) 3335 3336## [0.8.3] - 2018-02-05 3337 3338### Added 3339- Compression in .usdc files for integer arrays and scalar floating point 3340 arrays. The latter are compressed if the values are all integers or there 3341 are a small number of unique values. In the example Kitchen Set asset on 3342 the USD website, the total size of the geometry layers decreased by ~46%, 3343 from 25 MB to 14 MB. 3344 3345 .usdc files with this new compression enabled are marked as version 0.6.0 3346 and are not readable by earlier releases. These files are not written by 3347 default; this may be enabled by setting the environment variable 3348 `USD_WRITE_NEW_USDC_FILES_AS_VERSION` to "0.6.0". 3349- Ability to record and query API schemas that have been applied to a prim 3350 via new Apply method on API schema classes, UsdPrim::GetAppliedSchemas and 3351 UsdPrim::HasAPI. Custom API schemas should be updated with these new 3352 methods by re-running usdGenSchema. 3353- GetUnionedTimeSamples and GetUnionedTimeSamplesInInterval functions for 3354 UsdAttribute and UsdAttributeQuery. 3355- Ability to offset time for active value clips when using template clip 3356 metadata via "templateActiveOffset" entry. 3357- UsdUtilsGetDirtyLayers for retrieving dirty layers used by a UsdStage. 3358- GetTimeSamplesInInterval functions for UsdGeomXformOp, UsdGeomXformable 3359 and UsdGeomXformable::XformQuery. 3360- UsdShadeMaterialBindingAPI, which provides an interface for binding 3361 materials to prims or collections of prims and computing the final bound 3362 material for a prim via "material resolution". 3363- Numerous features and documentation for UsdSkel schema. 3364- "Save Flattened As" functionality in usdview. 3365- Plugin mechanism in usdview that allows users to add custom commands 3366 and menus. See new tutorial for more details. 3367- Partial support for RenderMan for Maya lights in the Maya plugin. 3368- PxrUsdIn.BootstrapMaterialGroup op in Katana plugin for more robustly reading 3369 a Looks scope from a .usd file 3370 3371### Changed 3372- Build now supports versioned OpenEXR and IlmBase shared libraries. 3373 (Issue: [#71](https://www.github.com/PixarAnimationStudios/USD/issues/71)) 3374- Layer identifiers may now include '?' characters. 3375 (Issue: [#289](https://www.github.com/PixarAnimationStudios/USD/issues/289)) 3376- UsdStage preserves payload load state when processing instancing changes. 3377- UsdListPosition enum values now specify the "append" or "prepend" list as 3378 well as a position to provide users with finer-grained control. 3379- The various Add... methods in Usd that take a UsdListPosition argument 3380 now author entries to the back of the "prepend" list by default if no 3381 "explicit" list exists. The old behavior of authoring to the (now 3382 deprecated) "added" list can be restored by setting the environment 3383 variable `USD_AUTHOR_OLD_STYLE_ADD` to 1. 3384- Standard schema conventions are more strictly-enforced in usdGenSchema. 3385- UsdCollectionAPI::AddCollection has been renamed ApplyCollection. 3386- Enabled authoring of new UsdShade encoding by default. Authoring the old 3387 (now deprecated) encoding can be restored by setting the environment variable 3388 `USD_SHADE_WRITE_NEW_ENCODING` to 0. 3389- The "joints" relationship on the UsdSkelSkeleton, UsdSkelPackedJointAnimation, 3390 and UsdSkelBinding API schemas is now a token array-valued attribute. 3391- UsdRiStatements API schema has been renamed to UsdRiStatementsAPI. 3392- sdfdump utility now shows all specs in a layer, even if they have no fields. 3393- Various improvements to Hydra reprs and geometry processing. 3394- More improvements to Hydra's handling of invalid data. 3395- Ongoing work to prepare Hydra to fully consume UsdShade schemas. 3396- Refactored GL dependency out of Hd library. 3397- Built-in variables in usdview interpreter are now accessed through a separate 3398 usdviewApi object to avoid name collisions. 3399- Performance improvements in Maya plugin when in Viewport 2.0. 3400- Inclusion of info.usd.opArgs in Katana plugin is now parameterized; it will 3401 be authored to the location where a "setOpArgsToInfo" attribute exists and is 3402 set to 1. 3403 3404### Deprecated 3405- The "added" list for list ops in scene description is deprecated in favor 3406 of the "prepend" and "append" lists. 3407 3408### Removed 3409- GfCamera::ZUp and GfCamera::YUp. 3410- UsdSkelJoint schema. 3411 3412### Fixed 3413- build_usd.py ensures OpenImageIO build does not pick up OpenEXR from other 3414 locations, which could have led to runtime errors. 3415 (Issue: [#315](https://www.github.com/PixarAnimationStudios/USD/issues/315), 3416 Issue: [#325](https://www.github.com/PixarAnimationStudios/USD/issues/325)) 3417- Headers are now installed properly for monolithic builds. 3418 (Issue: [#277](https://www.github.com/PixarAnimationStudios/USD/issues/277)) 3419- Original install location will no longer be searched for plugins after 3420 relocating builds. 3421 (Issue: [#363](https://www.github.com/PixarAnimationStudios/USD/issues/363)) 3422- Fixed thread-safety issue where plugins with the same name but in different 3423 locations could be loaded twice. 3424 (Issue: [#358](https://www.github.com/PixarAnimationStudios/USD/issues/358)) 3425- Fixed bug where layers that were muted via SdfLayer::AddToMutedLayers before 3426 they were first opened could not be unmuted. 3427- Fixed bug in usdGenSchema where changing an existing property's type in a 3428 schema would not be reflected in the generated code. 3429- Fixed bug where a large (> 1460) number of variants in a .usda file would 3430 cause a "memory exhausted" error when parsing that file. 3431- Fixed broken pread mode for .usdc files. 3432- Fixed bug that caused UsdStage::CreateNew to crash on Windows. 3433 (Issue: [#364](https://www.github.com/PixarAnimationStudios/USD/issues/364)) 3434- Fixed bug when using a UsdStagePopulationMask with prims beneath instances. 3435 (Issue: [#312](https://www.github.com/PixarAnimationStudios/USD/issues/312)) 3436- Fixed bug where setting float-valued attributes to +inf in Python would fail. 3437- UsdAttribute::GetTimeSamplesInInterval now properly accounts for layer 3438 offsets. (Issue: [#352](https://www.github.com/PixarAnimationStudios/USD/issues/352)) 3439- Internal references or empty asset paths no longer cause errors in 3440 UsdUtilsFlattenLayerStack. 3441- Fixed bug where UsdGeomPrimvar::GetTimeSamples would miss time samples for 3442 indexed primvars. 3443- Disabled tiny prim culling in Hydra by default. It can be re-enabled by 3444 setting the environment variable `HD_ENABLE_TINY_PRIM_CULLING` to 1. 3445 (Issue: [#314](https://www.github.com/PixarAnimationStudios/USD/issues/314)) 3446- Fixed issues with using non-file-backed asset paths in various utilities 3447 and Maya and Katana plugins. 3448- Houdini plugin explicitly links against required libraries to avoid runtime 3449 errors with Houdini 16.5. 3450- Fixed several bugs with point instancing support in Houdini plugin. 3451 3452## [0.8.2] - 2017-12-01 3453 3454Release 0.8.2 increments the file format version for .usdc files. New .usdc 3455files created in this release will not be readable by earlier releases. See 3456below for more details. 3457 3458### Added 3459- SdfCopySpec for copying scene description specs in layers. 3460- Usd.GetVersion() for retrieving USD version in Python 3461 (Issue: [#306](https://www.github.com/PixarAnimationStudios/USD/issues/306)) 3462- UsdProperty::FlattenTo for copying a UsdProperty's resolved metadata/values. 3463- IsTyped and IsConcrete schema queries on UsdSchemaRegistry and UsdSchemaBase. 3464- UsdCollectionAPI schema for representing collections of objects. This schema 3465 is more expressive than UsdGeomCollectionAPI and can represent large numbers 3466 of objects compactly. 3467- Utility functions in UsdUtils for determining compact representations of 3468 objects for UsdCollectionAPI. 3469- UsdUtilsCoalescingDiagnosticDelegate, a Tf diagnostic delegate that provides 3470 condensed output for diagnostic messages. 3471- UsdUtilsFlattenLayerStack for flattening a UsdStage's layer stack into a 3472 single layer, as well as a --flattenLayerStack option to usdcat. 3473- Support for named clip sets for clip stitching API in UsdUtils. 3474- Schema for cards rendering in UsdGeomModelAPI and imaging support. This 3475 provides a lightweight way to collapse model hierarchies into simple 3476 geometry for visualization of large scenes. 3477- Ability to encode familyType on owners of families of UsdGeomSubsets. 3478- Size properties for UsdLuxDiskLight, UsdLuxSphereLight, and UsdLuxRectLight. 3479 (Issue: [#290](https://www.github.com/PixarAnimationStudios/USD/issues/290)) 3480- Support for computing bounding boxes for UsdGeomPointInstancer instances 3481 using UsdGeomBBoxCache. 3482- Support for residual GPU computations in Hydra. 3483- Sheer display mode in Hydra, a 'see-through' display mode akin to the 3484 mesh being covered in a sheer mesh fabric instead of its regular surface. 3485 Implemented as a regular grid stipple pattern of the surface at 20% opacity. 3486- Testing framework for usdview. 3487- PxrUsdMayaXformStack for representing transform stacks in the Maya plugin. 3488- Support for exporting Maya instancers to UsdGeomPointInstancers in the Maya 3489 plugin. 3490- Support for exporting groups of objects with the same material binding as 3491 collections encoded with UsdCollectionAPI in the Maya plugin. 3492- Support for vec4 primvars in the Katana plugin. 3493- Support for point instancers with varying topology that don't have authored 3494 velocities in the Katana plugin. 3495- Support for importing collections encoded with new UsdCollectionAPI schema 3496 in the Katana plugin. 3497- Support for overriding data on a subset of point instancer instances in 3498 the Houdini plugin. 3499 3500### Changed 3501- Build system now checks that the compiler being used supports 64-bit builds. 3502- Tf diagnostic warnings and status messages issued in secondary threads are 3503 no longer printed to the terminal. 3504- Multiple delegates may now be registered with the Tf diagnostic system. 3505- SdfLayer::RemoveInertSceneDescription removes inert overs in variants. 3506- When saving a new .usdc file over an existing file, data is first saved to a 3507 temporary file then renamed to the destination file. This provides some 3508 protection for other processes that were reading the old file. 3509- Compression for structural sections in .usdc files is now enabled by default. 3510 New .usdc files will be marked as version 0.4.0 instead of 0.3.0 to 3511 accommodate a bug fix described below. This means that any new .usdc files 3512 created in this release will not be readable by previous USD releases. 3513 3514 Users can disable the compression functionality by setting the environment 3515 variable `USD_WRITE_NEW_USDC_FILES_AS_VERSION` to "0.0.1". This will ensure 3516 new .usdc files will be readable in older releases. 3517 3518- UsdStage now uses the composed layer offset instead of its inverse when 3519 mapping times in layers to the stage. For example, to shift the time samples 3520 in a referenced layer stack forward by 10, users previously authored an 3521 offset of -10. Under the new behavior, users need to author an offset of 10 3522 instead. 3523 3524 Users can revert to the old behavior by setting the environment variable 3525 `USD_USE_INVERSE_LAYER_OFFSET` to 1. This will be deprecated in a future 3526 release. 3527 3528- UsdStage now allows a prim to be loaded without loading its descendants via 3529 a new UsdLoadPolicy argument supplied to UsdStage::Load and LoadAndUnload. 3530- UsdInherits, UsdSpecializes, and UsdReferences now map non-root prim paths 3531 to the namespace of the edit target. 3532- UsdAttribute::GetTimeSamplesInInterval now supports open/finite end points. 3533- UsdClipsAPI now authors the dictionary-style clips metadata introduced in 3534 release 0.7.6 by default. 3535- Schemas may now define fallback values for the majority of metadata fields, 3536 including custom metadata fields. 3537- Schemas may now have more than 256 tokens defined. 3538- usdedit now checks `USD_EDITOR` environment variable first when determining 3539 which editor to use. 3540- Ongoing refactoring to move code from hd to hdSt in preparation for material 3541 support in Hydra and use of Hydra in other renderer backends. 3542- Several performance optimizations in Hydra and UsdImaging. 3543- usdview now uses a new JSON-based format for its settings file. Settings 3544 files from older releases will be ignored. 3545- Several changes to provide better support for Viewport 2.0 in Maya plugin. 3546- Enum attributes in Maya now have their integer values exported to USD 3547 instead of their descriptive names. 3548- Improved attribute transfer on USD Unpack node in Houdini plugin. 3549- usdvisible and usdactive attributes in Houdini plugin are now integers 3550 instead of strings. 3551- Several changes to Houdini plugin for compatibility with Houdini 16.5 3552 and improved HDK usage. 3553 3554### Deprecated 3555- UsdGeomCollectionAPI, in favor of new UsdCollectionAPI. 3556 3557### Removed 3558- TfDiagnosticNotice. The Tf diagnostic system no longer emits notices; 3559 consumers relying on these notices should use diagnostic delegates instead. 3560- UsdGeomPointInstancer prototypeDrawMode attribute. Consumers should use 3561 the new drawMode attributes on UsdGeomModelAPI instead. 3562 3563### Fixed 3564- Issue where users were forced to define certain preprocessor macros in 3565 order to build code against USD. In particular, an issue introduced in 0.8.1 3566 caused users who did not #define PXR_ENABLE_PYTHON_SUPPORT to run into odd 3567 errors at runtime. 3568 (Issue: [#304](https://www.github.com/PixarAnimationStudios/USD/issues/304)) 3569- Bug that caused invalid .usdc files to be written. This affected all files 3570 with version 0.3.0; however, this file version was not enabled by default in 3571 release 0.8.1 and would only affect users who had explicitly enabled the 3572 new version via the `USD_WRITE_NEW_USDC_FILES_AS_VERSION` environment setting. 3573- Precision loss when writing time sample times to .usda files. 3574- Performance issue in UsdStage where memory would still be consumed by 3575 child prims after their parent prim had been deactivated. 3576- Bug that caused UsdStage::ExpandPopulationMask to add invalid paths. 3577- Bug that caused UsdObject::GetMetadata to not fill in resolved paths for 3578 asset-valued metadata. 3579- Bug where layer offsets were incorrectly applied when authoring time samples. 3580- Bug in UsdUtilsStageCache that led to crashes during static destruction. 3581- Unpickable objects now act as occluders during picking in Hydra. 3582- Bug that caused usdview to stop drawing after "Reopen Stage" or "Open Stage". 3583- Bug that caused usdview to not play all frames if the step size was changed. 3584 (Issue: [#321](https://www.github.com/PixarAnimationStudios/USD/issues/321)) 3585- Several performance and UI issues in usdview. 3586- Crash in Maya plugin with nested assemblies and variant set selections. 3587 (Issue: [#288](https://www.github.com/PixarAnimationStudios/USD/issues/288)) 3588- Bug in Maya plugin where exporting over a previously-imported layer failed. 3589- Bug in Maya plugin that caused lights to flip between directional and 3590 non-directional in legacy viewport. 3591- Various issues that prevented UsdKatana Python module from being imported. 3592 (Issue: [#323](https://www.github.com/PixarAnimationStudios/USD/issues/323)) 3593- Material bindings above point instancer prototypes are now preserved in 3594 the Katana plugin. 3595- Reworked how USD masters/sources are built in the Katana plugin so 3596 that material bindings use the correct Katana paths. 3597- Hang in Houdini plugin when importing from variant paths. 3598 (Issue: [#309](https://www.github.com/PixarAnimationStudios/USD/issues/309)) 3599 3600## [0.8.1] - 2017-10-02 3601 3602### Added 3603- "append" and "prepend" operations for SdfListOp-valued fields. 3604 Scene description layers that contain these new operations will not be 3605 readable by earlier USD releases. 3606- `--validate` argument to sdfdump for checking file validity. 3607- Support for sub-root references and payloads. 3608- Ability to specify amount of data to prefetch when reading a .usdc 3609 file via the `USDC_MMAP_PREFETCH_KB` environment variable. 3610- Debugging output that shows memory mapping information for .usdc files. 3611 This can be enabled via the `USDC_DUMP_PAGE_MAPS` environment variable. 3612- UsdGeomMotionAPI schema. 3613- UsdGeomSubset schema for representing a subset of a geometric prim. 3614- Hydra GL support for displacement shaders 3615- Initial experimental support for PySide2 in usdview. By default, the 3616 build will search for PySide, then PySide2. Alternatively, users may specify 3617 `PYSIDE_USE_PYSIDE2=TRUE` to CMake to force the use of PySide2. 3618- Ability to view connections and relationship targets in usdview. 3619- Support for camera clipping range in Alembic plugin. 3620- Support for array attributes with "RfM Shaders" shading mode in Maya exporter. 3621- Support for angularVelocities attribute on point instancers in Katana plugin. 3622- Filtered view and improved selection to Tree View panel in Houdini plugin. 3623- Support for prototype offsets in point instancer exports in Houdini plugin. 3624 3625### Changed 3626- Made Python dependency optional. Python support is enabled by default but 3627 may be disabled by specifying `PXR_ENABLE_PYTHON_SUPPORT=FALSE` to CMake 3628 or `--no-python` to build_usd.py. 3629- build_usd.py now requires that users install PyOpenGL manually. 3630 (Issue: [#264](https://www.github.com/PixarAnimationStudios/USD/issues/264)) 3631- Replaced addedOrExplicitItems attribute on Sdf.*ListOp in Python with 3632 GetAddedOrExplicitItems method. 3633- Renamed Append... methods on composition arc APIs (e.g. UsdReferences, 3634 UsdInherits) to Add... and added a position argument to support new 3635 "append" and "prepend" operations. 3636 3637 Calling these functions with the default UsdListPositionTempDefault argument 3638 will author "add" operations, maintaining the previous behavior. We anticipate 3639 removing UsdListPositionTempDefault and replacing it with UsdListPositionFront 3640 so that "prepend" operations will be authored by default in 0.8.2. Users may 3641 enable this behavior now by setting the `USD_AUTHOR_OLD_STYLE_ADD` environment 3642 variable to false. 3643 3644- UsdStage now issues warnings for invalid layers it encounters instead of 3645 errors, which cause exceptions in Python. 3646- Code generation templates and schema.usda files used by usdGenSchema are 3647 now installed as part of the build. Schemas can now use asset paths like 3648 "usdGeom/schema.usda" or "usdShade/schema.usda" instead of absolute paths 3649 to add installed schemas as sublayers. 3650 (Issue: [#158](https://www.github.com/PixarAnimationStudios/USD/issues/158), 3651 Issue: [#211](https://www.github.com/PixarAnimationStudios/USD/issues/211)) 3652- Improved USD scenegraph instancing to allow more sharing of assets with 3653 inherits or specializes arcs. In one large example, this decreased stage load 3654 time by ~60%, stage memory usage by ~65%, and time to first image in usdview 3655 by ~20%. 3656- Several optimizations to reduce I/O operations for .usda and .usdc files. 3657- Add support for compressed structural sections in .usdc files. This can 3658 significantly decrease file sizes for files that are dominated by prim and 3659 property hierarchy; one production shading file decreased in size by ~94%, 3660 from 21 MB to 1.3 MB. 3661 3662 Compressed files are marked as version 0.3.0 and are not readable by earlier 3663 USD releases. To help with transition, USD will not write these compressed 3664 files by default until a future release. Users may enable this feature now 3665 by setting the `USD_WRITE_NEW_USDC_FILES_AS_VERSION` environment variable 3666 to "0.3.0". We plan to add compression for geometry data and time samples 3667 in a future release. 3668 3669- UsdUtilsExtractExternalReferences now checks for references to external files 3670 in property values and metadata. 3671- Increased precision for rotations attribute in UsdSkelPackedJointAnimation 3672 schema to 32-bit. 3673- UsdGeomPrimvar now allows primvar names with arbitrarily-nested namespaces. 3674- Sizeable refactor in Hydra to support sprims more like rprims in anticipation 3675 of future lights and material support. 3676- Hydra no longer syncs rprims that are not visible. 3677- Several performance and stability fixes to point instancer handling in Hydra. 3678- "Reload All Layers" in usdview will try not to reset the camera or timeline. 3679- Numerous other improvements to usdview. 3680- The Alembic reader now converts single samples for properties in .abc files 3681 to single time samples in USD, instead of default values. 3682- Updated required Katana version to Katana 2.5v1. 3683- Improved bounds computations for point instancers in Katana plugin 3684- Account for motion sample time overrides when computing bounding boxes in 3685 Katana plugin. 3686- Improved stage cache in Houdini plugin, which can have significantly 3687 better performance in some circumstances. 3688- Improved handling of instanced USD primitives in Houdini plugin. 3689 3690### Deprecated 3691- UsdGeomFaceSetAPI and related API in usdShade and usdLux in favor of new 3692 UsdGeomSubset schema. 3693 3694### Removed 3695- UsdStage::Close. 3696- Camera zUp-related functionality 3697- Support for faceVaryingInterpolateBoundary in UsdGeomMesh schema. 3698 See faceVaryingLinearInterpolation instead. 3699 3700### Fixed 3701- Bug in build_usd.py where specifying `--no-embree` did the opposite. 3702 (Issue: [#276](https://www.github.com/PixarAnimationStudios/USD/issues/276)) 3703- Bug in build_usd.py where specifying `--force-all` or `--force` on a 3704 Python dependency would cause the script to error out early. 3705 (Issue: [#263](https://www.github.com/PixarAnimationStudios/USD/issues/263)) 3706- Race condition between TfType consumers and TfType registry initialization. 3707- Composition bug where references with the same prim path and relative asset 3708 path would be considered duplicates even when anchoring location differed. 3709- Composition bug where payloads on arcs requiring ancestral opinions could 3710 result in errors. 3711- Change processing bug when removing sublayers specified by search path. 3712- Stack overflow crash when reading .usdc files due to excessive recursion. 3713- Possible crash in Hydra when using basis curves. 3714- Memory leak in Hydra task controller. 3715- Build issue for Alembic plugin with HDF5 support disabled when 3716 precompiled headers are enabled (which is the default on Windows). 3717- Several other bugs in Alembic reader. 3718- Performance issue in Katana plugin due to inefficiency in UsdShadeNodeGraph. 3719 3720## [0.8.0] - 2017-07-29 3721 3722### Added 3723- Added option to build_usd.py for building monolithic shared library 3724 and for building new sample Embree plugin. 3725- Added --mask option to usdcat, matching the --mask option in usdview. 3726- Added CPU-side external computation support to Hydra. 3727- Added Embree backend to serve as an example of how to add renderer 3728 plugins to Hydra. 3729- Added camera gates to usdview. 3730- Added ability to Houdini plugin to set active state via usdactive 3731 attribute and to write static data to default time via usdwritestatictopology, 3732 usdwritestaticprimvars, and usdwritestaticgeo attributes. 3733- Added UsdExportAttributes hda to Houdini plugin for setting primitive and 3734 detail attributes which control various USD attributes or metadata. 3735 3736### Changed 3737- Restored export of CMake targets from shared library builds. 3738- Asset paths in .usda files may now contain any printable character. 3739 (Issue: [#73](https://www.github.com/PixarAnimationStudios/USD/issues/73)) 3740- Legacy special behavior for variant sets named "standin" has been disabled 3741 by default. 3742- Interpolation is now applied to time samples from clips when no sample 3743 exists at a specified clip time. 3744- Removed deprecated UsdShadePShader schema. 3745- Enabled vertex primvar sharing in Hydra. Hydra can now use significantly 3746 less GPU memory. 3747- Many internal performance improvements to Hydra. 3748- usdview HUD now shows the backend renderer plugin used by Hydra 3749- Wireframe drawing now ignores opacity. 3750- Katana plugin properly interprets schema-supported triangle subdivision rule 3751 when meshes are read in and rendered. 3752 3753### Fixed 3754- Fixed several issues in build_usd.py related to building dependencies. 3755 (Issue: [#225](https://www.github.com/PixarAnimationStudios/USD/issues/225), 3756 Issue: [#230](https://www.github.com/PixarAnimationStudios/USD/issues/230), 3757 Issue: [#234](https://www.github.com/PixarAnimationStudios/USD/issues/234)) 3758- Fixed bug where UsdGeomPrimvar::IsIndexed() would not work for attributes 3759 with only authored time samples. 3760 (Issue: [#238](https://www.github.com/PixarAnimationStudios/USD/issues/238)) 3761- Fixed small platform inconsistencies for Windows in Hydra. 3762- Fixed crash in Katana plugin when using point instancers that did not have 3763 scales or orientations specified. 3764 (Issue: [#239](https://www.github.com/PixarAnimationStudios/USD/issues/239)) 3765- Fixed issue in Houdini plugin where the "w" attribute was not converted 3766 to the "angularVelocities" attribute for point instancer prims. 3767 3768## [0.7.6] - 2017-06-30 3769 3770### Added 3771- Added `build_scripts/build_usd.py` for building USD and its dependencies. 3772- Added support for building static libraries or a single monolithic 3773 shared library. See [BUILDING.md](BUILDING.md#linker-options) for more 3774 details. 3775- Added support for color spaces to Usd. Color configuration and management 3776 system can be specified on a UsdStage (via the stage's root layer), and 3777 colorSpace metadata is available on any UsdAttribute. 3778- Added clip set functionality to Usd. This provides the ability to specify 3779 multiple sets of value clips on the same prim, which allows users to compose 3780 different sets of clips together. See UsdClipsAPI for more details. 3781- Added initial UsdLux schemas for representing interchangeable lights and 3782 related concepts, and UsdRi schemas for Renderman-specific extensions. 3783 UsdImaging/Hydra support will be coming in a future release. 3784- Added ability to specify smooth triangle subdivision scheme for catmullClark 3785 surfaces in UsdGeomMesh and imaging support in Hydra. 3786- Added backdrops for node layout description in UsdUI. 3787- Added support for sharing immutable primvar buffers to Hydra. 3788 This can greatly reduce the memory required on the GPU when displaying 3789 typical scenes. It is currently experimental and disabled by default. It 3790 can be enabled for testing with the environment variable 3791 `HD_ENABLE_SHARED_VERTEX_PRIMVAR`. 3792- Added support for uniform primvars for basis curves in Hydra. 3793- Added ability to Alembic plugin to control number of Ogawa streams used for 3794 each opened archive via the environment variable `USD_ABC_NUM_OGAWA_STREAMS`, 3795 which defaults to 4. 3796- Added Katana plugin support for reading UsdLux lights. 3797- Added `--camera` command line argument to usdview to specify the initial 3798 camera to use for viewing. 3799- Added display of instance index and (if authored) instance ID to rollover 3800 prim info in usdview. 3801- Added initial version of Houdini plugin. 3802 3803### Changed 3804 3805- Removed unnecessary dependency on OpenImageIO binaries. 3806- Removed unnecessary dependency on boost::iostreams. 3807- Made HDF5 backend for Alembic plugin optional. HDF5 support is enabled by 3808 default but may be disabled by specifying `PXR_ENABLE_HDF5_SUPPORT=FALSE` 3809 to CMake. 3810- Metadata fields for value clips feature in UsdStage (e.g. clipAssetPaths, 3811 clipTimes, etc.) have been deprecated in favor of the new clips metadata 3812 dictionary. Authoring APIs on UsdClipsAPI still write out the deprecated 3813 metadata unless the environment variable `USD_AUTHOR_LEGACY_CLIPS` is set 3814 to 0. This will be disabled in a future release. 3815- When using value clips, Usd will now report time samples at each time 3816 authored in the clip times metadata. 3817- Completed support for encoding UsdShade data using UsdAttribute connections. 3818 Authoring APIs still write out the old encoding, unless the environment 3819 variable `USD_SHADE_WRITE_NEW_ENCODING` is set to 1. This will be enabled 3820 in a future release. 3821- Removed support for deprecated UsdShade schemas UsdShadeParameter and 3822 UsdShadeInterfaceAttribute, which have been superseded by UsdShadeInput. 3823- Removed deprecated UsdRiLookAPI, which has been replaced by UsdRiMaterialAPI. 3824- Removed deprecated Hydra scene delegate APIs. 3825- Significant refactoring and refinements to allow multiple backends to be 3826 plugged in to Hydra. 3827- UsdImaging now pushes GL_DEPTH_BUFFER_BIT to avoid any potential state 3828 pollution issues when integrating it with other renderers. 3829- Improved error handling in Hydra for: 3830 - Invalid point instancer input 3831 - Inconsistent displayColor and displayOpacity primvars 3832 - Direct instances of imageable prims 3833- usdview more gracefully handles the situation where it doesn't get a 3834 valid GL context (e.g., due to limited resources on the GPU). 3835- Improved how edits are handled on assembly nodes in the Maya plugin. 3836- Improved UsdGeomPointInstancer support in the Katana plugin: 3837 - Overhauled methods for computing instance transforms and aggregate bounds. 3838 - Backward motion and multi-sampled point instancer positions, orientations, 3839 and scales are now supported. 3840 - Removed opArgs attributes that were used for configuring the reader's 3841 behavior. 3842 - More robust primvar transfer to point instancer's Katana locations. 3843 - Restructured prototype building logic to preserve material bindings 3844 when creating prototype prims. 3845- Numerous changes and fixes for Mac and Windows ports. 3846 3847### Fixed 3848 3849- Fixed issue that caused IDEs and other tools to find headers in the build 3850 directories rather than the source directories. 3851- Fixed race condition in TfType. 3852- Fixed long-standing memory corruption bug in Pcp that surfaced when 3853 building on MacOS with XCode 8.3.2. 3854- Fixed potential deadlocks in Usd and Pcp due to issues with TBB task group 3855 isolation. 3856- Fixed bug where UsdStage::Flatten was not preserving attribute connections. 3857- Fixed infinite loop on glGetError in the presence of an invalid GL context. 3858 (Issue: [#198](https://www.github.com/PixarAnimationStudios/USD/issues/198)) 3859- Fixed build issues that caused the Maya plugin to be unusable after building 3860 on MacOS. 3861 3862## [0.7.5] - 2017-05-01 3863 3864C++ namespaces are now enabled by default. The `PXR_ENABLE_NAMESPACES` CMake 3865option may be used to disable namespaces if needed. 3866 3867This release adds initial experimental support for building the USD core 3868libraries on Windows. 3869 3870### Added 3871- Added ability to build doxygen documentation. See 3872 [BUILDING.md](BUILDING.md#documentation) for more details. 3873- Added support for pre-compiled headers. By default, this is disabled 3874 for Linux and Mac builds and enabled for Windows builds. This may be 3875 configured with the `PXR_ENABLE_PRECOMPILED_HEADERS` CMake option. 3876- Added many unit tests for core libraries 3877- Added UsdStage::Save and UsdStage::SaveSessionLayers 3878- Added attribute connection feature that allows consumers to describe 3879 connections between an attribute and other prims and properties. 3880- Added instance proxy feature that allows consumers to interact with 3881 objects on a UsdStage as if scenegraph instancing were not in use while 3882 retaining the performance benefits of instancing. 3883- Plugins providing Boundable schema types can now register functions for 3884 computing extents. This allows code in the USD core to compute extents for 3885 prims with types provided by external schemas. 3886- Added support for specializes arcs to usdShade. 3887- Added UsdUISceneGraphPrimAPI for representing prim display properties. 3888- Added `HD_DISABLE_TINY_PRIM_CULLING` flag for `TF_DEBUG` to make it easier 3889 to turn off tiny prim culling for debugging. 3890- Added support for generic metadata to GLSLFX, allowing hardware shaders to 3891 pass information to downstream rendering code. 3892- Added ability to adjust basic material properties in usdview. 3893- Plugins can now register MayaPrimWriter subclasses for exporting Maya 3894 nodes to USD prims. 3895- Added ability to override default motion data (sample times, current time, 3896 shutter open/close) on a per-scope basis in Katana plugin. Users can author 3897 these overrides by modifying the global graph state, then decide to use 3898 the default motion values with or without these overrides applied. 3899 3900### Changed 3901- Removed OpenEXR dependency from core libraries. Note that OpenEXR is still 3902 required for imaging. 3903- Made Ptex dependency optional. It is only required if Ptex support for 3904 imaging is enabled. This is on by default, but can be disabled by specifying 3905 `PXR_ENABLE_PTEX_SUPPORT=FALSE` to CMake. 3906- Cleaned up and expanded doxygen documentation: 3907 - Added documentation for value clips and scenegraph instancing USD features. 3908 - Enabled XML generation for external tools 3909 - Fixed invalid tags and formatting in several places 3910- UsdTreeIterator has been replaced by UsdPrimRange, which provides 3911 container-like semantics in C++ (e.g., the ability to use them in range-based 3912 for loops). 3913- Removed UsdPrim::GetPayload API 3914- UsdRelationship and UsdAttribute will no longer forward target/connection 3915 paths that point to objects within instances to objects in master prims. 3916 Users can use the new instance proxy functionality to work with these paths 3917 instead. 3918- Relationships belonging to prims in instances that point to the root of the 3919 instance no longer cause errors. 3920- Value clip metadata can now be sparsely overridden across composition arcs. 3921- Deprecated shading property schemas UsdShadeParameter and 3922 UsdShadeInterfaceAttribute. These are replaced by UsdShadeInput, which can 3923 represent both input parameters on shaders and interface inputs on node 3924 graphs. 3925- The `--compose` command line parameter for usddiff is now `--flatten` 3926- Numerous cleanup changes for Hydra API. In particular: 3927 - HdEngine::Draw has been retired in favor of HdEngine::Execute. 3928 - HdSceneDelegate::IsInCollection has been deprecated in favor of render-tag 3929 based API. 3930- Meshes with subdivisionScheme = none will no longer be bilinearly subdivided. 3931- usdview now displays prim hierarchies beneath instances inline in the 3932 browser. The "Jump to Master" command has been removed in favor of this 3933 new functionality. 3934- The default specular response in usdview has been reduced by a factor of 5. 3935- The Maya plugin now excludes attributes during import if they are tagged 3936 with customData specifying them as generated. 3937- Numerous changes for ongoing Mac and Windows port efforts. 3938- Changed scoping of built-out point instancer prototypes in Katana plugin 3939 so that their hierarchy more closely matches the original USD hierarchy. 3940 3941### Fixed 3942- Added workaround to avoid redefined "_XOPEN_SOURCE" and "_POSIX_C_SOURCE" 3943 macro warnings due to Python includes on Linux. 3944 (Issue: [#1](https://www.github.com/PixarAnimationStudios/USD/issues/1)) 3945- Fixed issue where code would be generated directly into the install location 3946 when running cmake, interfering with the use of make's DESTDIR functionality. 3947 (Issue: [#84](https://www.github.com/PixarAnimationStudios/USD/issues/84)) 3948- Fixed memory leak when converting Python tuples to C++ GfVec objects. 3949- Fixed thread-safety issue with `PCP_PRIM_INDEX` and `PCP_PRIM_INDEX_GRAPHS` 3950 `TF_DEBUG` flags. 3951 (Issue: [#157](https://www.github.com/PixarAnimationStudios/USD/issues/157)) 3952- Fixed invalid memory access bug in Pcp 3953- Fixed memory leak when saving .usdc files. 3954- Fixed bug with removing an attribute's last time sample in a .usdc file. 3955- Fixed bug where instance prims with locally-defined variants would incorrectly 3956 share the same master prim. 3957- Reader-writer locks are now used for various registry to improve performance. 3958- Improved speed of adding an empty sublayer to an opened stage. In one large 3959 test case, time to add an empty sublayer went from ~30 seconds to ~5 seconds. 3960- Fixed issues with opening .usda files and files larger than 4GB on Windows. 3961 (Issue: [#189](https://www.github.com/PixarAnimationStudios/USD/issues/189)) 3962- Fixed backwards compatibility issues with UsdShadeInput and 3963 UsdShadeConnectableAPI. 3964- Memory footprint has been significantly reduced in Hydra's adjacency tables 3965 for subdivs that contain vertices of high valence. 3966- Fixed crash in imaging due to invalid textures. 3967- Fixed shadow banding artifacts when using vertex color with basis curves. 3968- Fixed buffer overrun when using GPU smooth normals. 3969- Fixed issue in Maya plugin where multiple assemblies that reference the 3970 same file might all be affected by the edits of one particular assembly 3971 when viewing them via a proxy. 3972- Fixed issue in Maya plugin where path resolution was being done by the 3973 plugin itself rather than deferring to Usd and Sdf. 3974 3975## [0.7.4] - 2017-03-03 3976 3977USD now supports C++ namespaces. They are disabled by default in this release 3978to ease transition, but we anticipate enabling them by default in the next 3979release. 3980 3981Specify the `PXR_ENABLE_NAMESPACES` CMake option to enable namespaces. 3982See documentation in [BUILDING.md](BUILDING.md#c-namespace-configuration) for more details. 3983 3984### Added 3985- Added GfHalf type to represent half-precision numeric values. This type 3986 is currently an alias to the "half" type supplied by the ilmbase library 3987 USD is built against. This will be changed in an upcoming release to point 3988 to a version of "half" that is included in the USD codebase, which will 3989 allow us to remove the USD core's dependency on ilmbase. 3990- Added UsdShadeInput class to represent shader or NodeGraph input. 3991 These are encoded as attributes in the "inputs:" namespace. By default, 3992 this encoding will not be written out via UsdShadeConnectableAPI unless 3993 the 'USD_SHADE_WRITE_NEW_ENCODING' environment variable is set. 3994- Added "Composition" tab to usdview that allows users to inspect the 3995 composition structure of a selected prim. 3996- Added tests for Hdx. These tests are currently not run as part of the unit 3997 test suite, but are being included for users to try on their platforms and 3998 to serve as example code. 3999- Added icons for the USD assemblies in Maya. 4000- Added initial implementation of Katana plugin for reading 4001 UsdGeomPointInstancer locations. 4002 4003### Changed 4004- CMake module now additionally looks for the pyside-uic binary under the name 4005 pyside-uic-2.7 to accommodate package managers on OSX. 4006- Removed GLUT dependency. 4007- Removed double-conversion dependency. 4008- Modified all uses of "half" type from ilmbase to use new GfHalf type. 4009- Renamed UsdShadeSubgraph to UsdShadeNodeGraph to conform with final 4010 MaterialX terminology. 4011- Numerous changes for in-progress work on refactoring Hydra to support render 4012 delegates. 4013- Updated UI in usdview to display legends for text coloring in collapsible 4014 panes and to include more information. 4015- The import UI in the Maya plugin now enables reading of anim data by default. 4016- Updated API in Maya plugin that referred to "look" to "material". 4017- Numerous changes for ongoing Mac and Windows porting efforts. 4018 4019### Fixed 4020- Fixed several issues when building with C++ namespaces enabled. 4021- Fixed bug with selection highlighting for instanced prims in usdview. 4022- Fixed crash that occurred when an invalid color primvar was encountered while 4023 using usdview's "simple" renderer. 4024- Fixed issue with TF_REGISTRY_DEFINE* macros that caused build failures 4025 for the Maya plugin on OSX. 4026 (Issue: [#162](https://www.github.com/PixarAnimationStudios/USD/issues/162)) 4027 4028## [0.7.3] - 2017-02-05 4029 4030### Added 4031- Added support for RelWithDebInfo and MinSizeRel release types. 4032- Added initial support for C++ namespaces. This feature is 4033 currently experimental but can be enabled by specifying the 4034 `PXR_ENABLE_NAMESPACES` option to CMake. See documentation in 4035 BUILDING.md for more details. 4036- Added population masking to UsdStage. 4037 - Consumers can specify what parts of a stage to populate and use 4038 to reduce resources used by the stage. 4039 - usdview now has a --mask option allowing users to view just the 4040 specified portion of a stage. 4041- Added UsdPrim API for collecting relationship targets authored 4042 in a given prim subtree. 4043- Added UsdShade API to allow creating and connecting outputs 4044 on subgraphs and shaders instead of terminals. 4045- Added support for bool shader parameters in Hydra. 4046 (Issue: [#104](https://www.github.com/PixarAnimationStudios/USD/issues/104)) 4047- Added ability to independently toggle display of geometry with 4048 purpose=proxy in usdview. 4049- Added initial set of unit tests for pxrUsd library in the Maya plugin. 4050- The Maya plugin now supports multi-sampling of frames during export. 4051- Attributes in Maya may now be tagged to be converted from double 4052 to single precision during export. 4053- Alembic tagging for attributes in Maya are now respected during 4054 export. This includes support for primvars and custom prefixes. 4055- Added support for playing back animation in assemblies via Hydra 4056 when the Playback representation is activated in Maya. 4057- Added support for reading material references in Katana plugin. 4058 4059### Changed 4060- CMake will no longer look for X11 on OSX. 4061 (Issue: [#72](https://www.github.com/PixarAnimationStudios/USD/issues/72)) 4062- The build system now uses relative paths for baking in plugin 4063 search paths, allowing for relocatable builds as long as all 4064 build products are moved together as one unit. 4065- Removed hard-coded /usr/local/share directory from plugin search path. 4066- Optimized creation of prim specs in Sdf. Creating 100k prim specs 4067 previously took 190s, it now takes 0.9s. 4068- SdfPath::GetVariantSelection now returns a variant selection only 4069 for variant selection paths. 4070- UsdStage no longer issues an error if requested to unload a path that 4071 does not identify an unloadable object. 4072- Changed API on UsdInherits, UsdReferences, UsdRelationship, 4073 UsdSpecializes, UsdVariantSet, and UsdVariantSets for clarity. 4074- Hydra GPU compute settings have been consolidated under a single 4075 HD_ENABLE_GPU_COMPUTE environment setting which is enabled by 4076 default if the OpenSubdiv being used supports the GLSL compute kernel. 4077- Numerous changes for in-progress work on refactoring Hydra to 4078 support render delegates. 4079- Changed 'Display' menu in usdview to 'Display Purposes...' and menu 4080 items to match USD terminology. 4081- Updated required Maya version to Maya 2016 EXT2 SP2. 4082- Normals are now emitted by default when exporting polygonal meshes in Maya. 4083- Katana plugin now supports deactivating prims directly on 4084 UsdStage for improved efficiency. 4085- Continued work on deprecating UsdShadeLook in favor of UsdShadeMaterial. 4086- Numerous changes for ongoing Mac and Windows porting efforts. 4087- Changed coding style to use symbol-like logical operators 4088 instead of the keyword-like form (e.g., '&&' instead of 'and'). 4089- Various cleanup changes to fix comments, compiler warnings, and 4090 to remove unused/old code. 4091 4092### Fixed 4093- Fixed composition bug where nested variants with the same name 4094 were composed incorrectly. 4095- Fixed composition bug where variant selections from classes 4096 were not being applied in certain cases. 4097 (Issue: [#156](https://www.github.com/PixarAnimationStudios/USD/issues/156)) 4098- Fixed .usda file output to write out floating point values 4099 using the correct precision and to use exponential representation 4100 for values greater than 1e15 (instead of 1e21) to avoid parsing 4101 issues. 4102- Fixed bug where negative double values that could be represented as 4103 floats were not stored optimally in .usdc files. 4104- Fixed bug where UsdPrim::Has/GetProperty would return incorrect results. 4105- Fixed bug where UsdObject::GetMetadata would return incorrect results 4106 for dictionary-valued metadata in certain cases. 4107- Fixed bug where reading certain .usdc files while forcing single-threaded 4108 processing via PXR_WORK_THREAD_LIMIT would lead to a stack overflow. 4109- Fixed missing garbage collection for shader and texture resource 4110 registries in Hydra. 4111- Several fixes for nested instancing support in Hydra (native 4112 USD instances containing other instances or point instancers, etc.) 4113- Fixed "Jump to Bound Material" in "Pick Models" selection mode in usdview. 4114- Fixed bug where USD assemblies would not be drawn in Maya under VP2.0. 4115- Workaround for performance issue when drawing proxies in Katana plugin. 4116- Fixed issue causing USD Alembic plugin to fail to build with 4117 Alembic 1.7. 4118 (Issue: [#106](https://www.github.com/PixarAnimationStudios/USD/issues/106)) 4119- Various other bug fixes and performance improvements. 4120 4121## [0.7.2] - 2016-12-02 4122 4123### Added 4124- Added ability to apply a custom prefix to shared library names 4125 by specifying the `PXR_LIB_PREFIX` option to CMake. 4126- Added ability to disable tests by using the `PXR_BUILD_TESTS` option 4127 with CMake. 4128- usddiff can now diff two directories containing USD files. 4129- Value clips on a prim may now be specified using 'template' clip 4130 metadata. This is a more compact representation for simple cases 4131 where each value clip corresponds to a single time code. 4132- Better support for non-file-backed asset resolution 4133 - Made ArDefaultResolver public, so that subclasses can layer 4134 behavior on top of it. 4135 - Added ArResolver API for retrieving files from data store when 4136 needed. 4137- Initial version of UsdGeomPointInstancer schema and preliminary 4138 support in usdImaging. 4139- pxrUsdReferenceAssemblies in Maya can now import animation from a USD scene. 4140 See http://openusd.org/docs/Maya-USD-Plugins.html#MayaUSDPlugins-ImportingasAssemblies 4141 for details. 4142- Core USD metadata (e.g. hidden, instanceable, kind) now roundtrips through 4143 Maya, stored as "USD_XXX" attributes on corresponding Maya nodes. 4144 4145### Changed 4146- Removed dependency on Qt. Note that PySide is still a dependency for 4147 usdview. 4148 - Removed imaging/glfq library as part of this work. 4149- Modified variant behavior in composition: 4150 - Variants may now be nested within other variants in scene description. 4151 Nested variants may be authored by using nested UsdEditContext objects 4152 returned by UsdVariantSet::GetVariantEditContext. 4153 - Weaker variants may now introduce variant selections that affect 4154 stronger variants. Previously, these selections would be ignored 4155 and the variant fallbacks would be used instead. 4156- Optimized .usdc file format performance in certain cases: 4157 - Output is buffered in memory to improve write times for layers 4158 containing many nested dictionaries. In one such example, wall-clock 4159 time improved by ~64% and system time improved by 89%. 4160 - Time samples are now written out grouped by time to improve read 4161 performance for frame-by-frame access patterns. 4162- Several optimizations to improve USD scenegraph authoring and composition 4163 speed and reduce memory consumption. In some use cases, we observed: 4164 - ~5-7x less memory consumed by Pcp dependency tracking structures 4165 - ~40% less time spent to author large stages 4166- Exporting USD from the Maya Export window now produces binary .usd 4167 files by default instead of .usda files. 4168 4169### Fixed 4170- Fixed bug where edits to a layer opened in Maya would persist when 4171 reopening that layer in a new scene. 4172- Fixed issue where exporting USD from the Maya Export window would 4173 produce files ending with ".usda", even if a different format 4174 was specified. The exporter should now respect any extension that 4175 is entered, so long as the "Default file extensions" option is 4176 turned off. 4177- Fixed several issues with example plugins being improperly built, making 4178 them unusuable, and missing functionality. 4179- Various other bug fixes and performance improvements. 4180 4181## [0.7.1] - 2016-09-21 4182 4183### Added 4184- UsdMaterial schema for shading, intended to replace UsdLook. Also added 4185 support for this new schema to Hydra. 4186- Initial version of UsdUI schema library, intended for encoding GUI 4187 information on USD prims. 4188- Parallel teardown of some data members in UsdStage, speeding up overall 4189 teardown by ~2x. 4190- Support for packed vertex normals to Hydra, reducing GPU memory consumption 4191 by 20-30% in some cases. 4192- Ability to compare two composed stages to usddiff by specifying the 4193 "--compose" or "-c" options. 4194- Support for soft-selection for collapsed USD assemblies in Maya. 4195- Support for exporting color sets and UV sets as indexed primvars from Maya. 4196 4197### Changed 4198- Refactored Hydra libraries to move higher-level concepts out of the core 4199 hd library and into hdx. 4200- Removed use of opensubdiv3/ include path from imaging code in favor of 4201 standard opensubdiv/ include. 4202- Modified UsdStage to automatically load newly-discovered payloads if 4203 their nearest ancestor's payload was also loaded. For example, consumers 4204 will no longer have to explicitly call UsdStage::Load to ensure payloads 4205 are loaded when switching variants on a prim, so long as their nearest 4206 ancestor is also loaded. 4207- Refactoring and other changes to help with Mac and Windows ports. 4208- Updated doxygen and other documentation. 4209 4210### Fixed 4211- Fixed issue that caused Alembic plugin (usdAbc) to be misconfigured at 4212 build time, which required users to manually update its plugInfo.json 4213 and set an environment variable at runtime to make it work. This plugin 4214 is now installed to $PREFIX/plugin/usd/ and requires no additional 4215 steps to use once it has been built. 4216- Fixed issue with .usdc files that resulted in corrupted files on Windows. 4217 The file structure was changed, so the .usdc version has been bumped 4218 from 0.0.1 to 0.1.0. USD will continue to write 0.0.1 files by default, 4219 but will begin writing 0.1.0 files in the near future. 4220 4221 Users may choose to write files with the new version immediately 4222 by setting the environment variable `USD_WRITE_NEW_USDC_FILES_AS_VERSION` 4223 to "0.1.0". 4224 4225 Note that 0.0.1 files are still readable using this release, 4226 except for those that have been generated on Windows using 0.7.0. 4227 Early testers on Windows will need to regenerate those files 4228 with this release. 4229- Fixed issue that caused usdGenSchema to generate files that could 4230 not be compiled. 4231- Added a workaround for TBB-related issue in Maya that caused hangs when 4232 using the USD Maya plugin. This can be enabled at build time by 4233 specifying the `PXR_MAYA_TBB_BUG_WORKAROUND` option to CMake. 4234- Various other bug fixes and performance improvements. 4235 4236## [0.7.0] - 2016-08-01 4237 4238Initial release 4239