|
1 | 1 | # Change Log |
2 | 2 |
|
| 3 | +## [21.11] - 2021-11-01 |
| 4 | + |
| 5 | +Ar 2.0 is enabled by default as of this release. Ar 1.0 is deprecated and will |
| 6 | +be removed in a subsequent release. During this transition, Ar 1.0 may still be |
| 7 | +enabled 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 | + |
3 | 336 | ## [21.08] - 2021-07-15 |
4 | 337 |
|
5 | 338 | Ar 2.0 is feature-complete as of this release. We anticipate addressing |
|
0 commit comments