Ar 2.0 is feature-complete as of this release. We anticipate addressing feedback and bug reports, deprecating Ar 1.0 and enabling Ar 2.0 by default for the next release, then removing Ar 1.0 entirely in the release after that. Developers should begin migrating to Ar 2.0 now.
RenderMan 24 is now required for the RenderMan plugin as of this release. Support for RenderMan 23 was deprecated in 21.05 and has now been removed.
Fixed bug with symbol demangling on Windows which broke some TfType alias registrations. (PR: #1510)
Replaced some uses of deprecated tbb::atomic with std::atomic. (PR: #1486)
Numerous changes to the Work library to adhere to TBB thread limits set by host applications. (Issue: #1368):
Many changes for Ar 2.0:
Added UTF-8 support for reading and writing asset paths. (Issue: #1443)
UTF-8 sequences are now written into .usda layers without hex encoding.
Embedded NUL bytes are disallowed in string values in .usda layers.
Dynamic file formats can now be set up to use anonymous layer identifiers to avoid the need for dummy resolvable assets. (Issue: #1356)
Made virtual SdfFileFormat functions protected instead of private. (PR: #1519)
Fixed bug where a layer would be dropped from the Sdf layer registry if its identifier were changed to an existing layer's via SdfLayer::SetIdentifier.
Fixed SdfLayer::SetIdentifier to use same restrictions as SdfLayer::CreateNew.
Fixed bug where entire layer would be parsed when reading layer metadata only from .usda layers via SdfLayer::OpenAsAnonymous if no such metadata existed.
Fixed bug with vector usage during calls to SdfLayer::TransferContent and other methods that caused debug asserts on Windows. (Issue: #1501)
Fixed output of PcpPrimIndex::PrintStatistics on Windows. (PR: #1480)
Added support for "codeless" USD schemas that do not have any C++ or Python code. Changes to these schemas' definitions do not require any code to be recompiled; instead, the generatedSchema.usda just needs to be regenerated via usdGenSchema and reinstalled.
Added usdgenschemafromsdr utility to generate schemas from Sdr nodes.
Added ability to specify allowed prim types for API schemas in the customData dictionary for the schema in schema.usda.
Added UsdPrim::CanApplyAPI and CanApply to all API schema classes to check if an API schema can be applied to a prim based on the restrictions above.
Removed deprecated instancing "master" API from UsdStage and UsdPrim.
Removed support for deprecated "UsdSchemaType" terminology in schemas.
Fixed UsdStage::ResolveIdentifierToEditTarget to be consistent with asset path computations during composition.
Fixed bug where UsdResolveInfo / UsdAttributeQuery would be invalidated by an insignificant layer stack change. (Issue: #1500)
Improved change processing performance in UsdStage. In an internal test that authored many attributes, runtime decreased by ~50% (from ~50s to ~25s).
A UsdConnectableAPIBehavior can now be set to ignore shader encapsulation rules by overriding UsdConnectableAPIBehavior::RequiresEncapsulation.
API schemas can now provide connectability behavior, which can override behavior based on prim type.
Deprecated UsdShadeMaterial::ComputeSurfaceSource, ComputeVolumeSource, and ComputeDisplacementSource overloads taking a single token for renderContext.
Renamed SdfTypeIndicator to NdrSdfTypeIndicator.
Added initial version of UsdPhysics domain and schemas. For more details, see the proposal. (PR: #1424)
Added support for correct refinement of varying and face-varying primvars.
Added support for compute program preprocessor defines.
Added size validation for uniform primvars of basis curves.
Improved performance of volume ray marching shader.
Improved wireframe on surface display for adaptive tessellation.
Improved wireframe on surface display for uniform refinement.
Improved edge picking performance.
Improved performance and appearance of patch edge drawing.
Improved GPU memory usage by using a non-aggregated allocation for GPU stencil table buffers.
Moved mesh edge handling out of the geometry shader.
Changed default material tag in HdxTaskController to enable alpha-to-coverage.
Changed behavior, when a dome light texture is invalid, issue a coding error and print the file path for debugging.
Changed behavior, updated selection on tracker during Prepare instead of Sync.
Use the new texture system to bind the texture in the render pass shader.
Removed redundant ptexId field from patchParam.
Removed HdStExtCompGpuComputationBufferSource.
Removed remaining GS edge id shader code.
Removed HdStMixinShader since its usage was very limited.
Fixed multiple issues related to OSD drawing.
Fixed Ptex layout texture sampler type.
Fixed TCS/TES processing of primvar and drawingCoord.
Fixed incorrect handling of left-handed meshes. (Issue: #1075)
Fixed resolution of symlinked UDIM textures. (Issue: #1329)
Fixed area light approximation when transforms are animated. (Issue: #1524)
Various improvements to Hgi:
USD_ABC_NUM_OGAWA_STREAMS
env var.shaderOutputOnly
flag on the GetValueProducingAttributes function, this
allows us to get only the type of connections we want and avoid the cost of
the extra checks.bxdf
types inputs to the Sdr terminal
type.Added build and packaging scripts for PyPI packages. Thanks to Nvidia for their work on this project!
Updated documentation build to fix several issues and no longer require Python. (Issue: #718)
GLEW is no longer required for building imaging components.
Various fixes and changes to build_usd.py:
Fixed various linking issues with OpenEXR. (PR: #1398)
Allow setting malloc hook functions if they were previously set to malloc/etc.
Fixed handling of symbolic links and mount points on Windows. (PR: #1378)
Fixed incorrect handling of non-existent variables in TfEnvSetting in Python.
Updated GfRect2i API to use function and argument names that are agnostic to the direction of the Y axis.
Updated ilmbase half embedded in Gf to OpenEXR v2.5.3. (Issue: #1354)
Added VtArray::AsConst, cfront, and cback methods to help avoid inadvertent copy-on-writes and thread-safety issues.
Fixes for variety of issues with VtArray conversions in Python, including conversion from Python sequences if all elements are convertible and a bug with inadvertent copy-on-writes. (Issue: #1138)
Initial implementation of Ar 2.0. This includes new features like support for URI resolvers and many changes to the ArResolver interface. For more details see https://graphics.pixar.com/usd/docs/668045551.html.
Work on Ar 2.0 is not yet complete and will continue through the next few
releases. Ar 2.0 is disabled by default but can be enabled for preview and
initial testing by specifying PXR_USE_AR_2=ON
when running CMake.
Moved SdfFindOrOpenRelativeToLayer to SdfLayer::FindOrOpenRelativeToLayer.
Fixed SdfLayer::FindRelativeToLayer to use the same anchoring logic as SdfLayer::FindOrOpenRelativeToLayer.
Fixed string encoding issue in .usda file writer. (Issue: #1331)
Improved behavior when hitting hard-coded composition graph limits in Pcp.
Fixed incorrect native instancing behavior with sub-root references.
Added support for auto-apply API schemas. This allows single-apply API schemas to be automatically applied to prims using one of a list of associated concrete schema types instead of requiring the user to manually apply the API schema.
Renamed UsdSchemaType to UsdSchemaKind to disambiguate between the schema type (e.g. UsdGeomSphere) and kind (e.g. non-applied, single-apply, etc).
Deprecated functions using the "schema type" terminology in favor of "schema kind".
Added UsdVariantSet::BlockVariantSelection. (Issue: #1319, PR: #1340)
Removed deprecated UsdAttribute::BlockConnections.
Removed deprecated UsdRelationship::BlockTargets.
Removed deprecated UsdCollectionAPI::ApplyCollection.
Added "container" concept to UsdShadeConnectableAPI.
Added support for connecting multiple sources to UsdShadeConnectableAPI.
Deprecated API for connecting to single sources in favor of the more general multiple-source API on UsdShadeConnectableAPI.
Deprecated UsdConnectableAPI::IsShader and IsNodeGraph in favor of
IsContainer API. Warnings are emitted on first use unless the environment
setting USD_SHADE_EMIT_CONNECTABLE_API_DEPRECATION_WARNING
is set to 0.
Updated various clients to apply the UsdShadeMaterialBindingAPI schema before binding materials.
Fixed Python binding for UsdShade.CoordSysAPI.HasLocalBindings. (PR: #1360)
Fixed Python binding for UsdSkel.SkinningQuery.ComputeExtentsPadding. (Issue: #1375)
Added UsdLuxPluginLight and UsdLuxPluginLightFilter schemas that allow for defining a light or light filter via an SdrShaderNode.
UsdLuxLight and UsdLuxLightFilter schemas now publish an associated SdrShaderNode based on their built-in properties.
Input attributes for UsdLuxLight and UsdLuxLightFilter schemas are now connectable and have been renamed to include the "inputs:" prefix.
Deprecated UsdLuxLightPortal schema in favor of new UsdLuxPortalLight schema.
Updated CMakeLists.txt to conform to recommended practice. (Issue: #1241)
The build system now sets Boost_NO_BOOST_CMAKE=ON
by default to
work around issues with boost's cmake files.
(Issue: #1255)
Various fixes and changes to build_usd.py:
Fixed incorrect underlying container type for TfHashMultiMap. (PR: #1281)
Fixed invalid conversions of Gf containers like GfVec3f in Python. Note this issue is still present in Python 3. (Issue: #1290)
Fixed various tests to accommodate PXR_OVERRIDE_PLUGINPATH_NAME
.
(PR: #1275)
Added GetExternalAssetDependencies to SdfLayer and SdfFileFormat to allow file format plugins to declare additional dependencies that determine when a layer produced from that file format should be reloaded.
Reduced memory usage from SdfPath::GetString and added SdfPath::GetAsString and SdfPath::GetAsToken to avoid populating internal caches. (Issue: #1287)
Various fixes to composition behavior:
Fixed bug in .usda file writer that could cause data corruption. (Issue: #1331)
Fixed performance issue when writing many relationship targets or attribute connections to .usdc files. (Issue: #1345)
Improved performance for certain queries with .usdc files. In one example, this decreased draw times in usdview after transform changes by ~90%. (Issue: #1300)
New .usdc files now default to version 0.8.0. These files cannot be read in
USD releases prior to v19.03. Users can revert to writing older versions by
setting the environment variable USD_WRITE_NEW_USDC_FILES_AS_VERSION
to an
older version.
Added safety checks to guard against reading malformed .usdc files. These
checks may negatively impact performance and may be disabled by specifying
PXR_PREFER_SAFETY_OVER_SPEED=OFF
when running CMake or
--prefer-speed-over-safety
with build_usd.py.
Native instancing "master" prims are now referred to as "prototype" prims. The generated paths of prototype prims has been changed from /_Master to /_Prototype. Clients can use new UsdPrim::IsPrototypePath and UsdPrim::IsPathInPrototype API to determine if a given path is related to a prototype.
UsdStage and UsdPrim API using "master" terminology like UsdPrim::GetMaster and UsdStage::GetMasters have been deprecated and will be removed in a future release.
Added Get/Set/ClearChildrenReorder to UsdPrim for reordering prim children.
UsdProperty::FlattenTo now allows flattening properties across stages.
Deprecated UsdRelationship::BlockTargets and UsdAttribute::BlockConnections. Clients should use SetTargets({}) and SetConnections({}) instead.
Changed UsdRelationship::GetTargets and UsdAttribute::GetConnections to return false when HasAuthored would return false.
Fixed bug where UsdFlattenLayerStack was not applying the asset path
resolution callback to asset paths in clips
metadata.
(PR: #1266)
Added UsdNotice::LayerMutingChanged notice. (Issue: #676)
Fixed resource leak with Usd.PrimCompositionQuery in Python. (PR: #1297)
Fixed crashes when printing expired Sdf.Layer and Usd.Stage objects in Python. (PR: #1012)
Removed isPrivateApply
functionality from schema generation.
Fixed error in UsdUtilsComputeAllDependencies when an invalid templateAssetPath value is specified. (PR: #1289)
Improved UsdUtilsGetPrimaryUVSetName and UsdUtilsGetPrefName. (PR: #1283)
Fixed bug in UsdUtilsStitchClips that led to inconsistent stitched results.
Added CanContainPropertyName to UsdCollectionAPI, UsdGeomPrimvars, UsdShadeMaterialBindingAPI, and UsdShadeCoordSysAPI for checking if a property name is valid for these schemas.
Deprecated UsdCollectionAPI::ApplyCollection in favor of Apply.
Added fallback values for texture card attributes on UsdGeomModelAPI schema.
Added exposure control to UsdGeomCamera.
Added ease-of-use API to UsdGeom primitives for querying the size of primary geometric properties (e.g. UsdGeomMesh::GetFaceCount).
Fixed plugin extent computations for primitives in UsdGeom to respect given timecode parameter. (PR: #1284)
Fixed crash in UsdGeomSubset::GetUnassignedIndices when a given subset had negative indices. (Issue: #1227)
Added UsdShadeNodeDefAPI schema to represent connectable nodes in a graph. UsdShadeShader has been modified to build off of this schema.
Added UsdShadeConnectableAPIBehavior to allow plugins to customize connectability by prim type.
Added API to retrieve material outputs for standard terminals in all render contexts on UsdShadeMaterial.
Added more instancing support to UsdSkel. (PR: #1258)
Updated UsdVol FieldAsset schemas.
Added new "sourceColorSpace" input to UsdUVTexture with values "raw", "sRGB", and "auto" for better control of with which color space a texture is read.
Added ability to use mip maps authored in a file in the new texture system in Storm.
Added UsdImagingPrimAdapter::ShouldIgnoreNativeInstanceSubtrees() to allow adapters to disable instancing of itself and its descendants.
Added pre-multiply alpha functionality for UDIM textures. Also added sRGB internal formats for UDIMs.
Added checks in HioGlslfxConfig to make sure the default value for an attribute and its type match.
Added HdEngine::ClearTaskContextData() to avoid the task context to hold on to resources that are about to become invalid as the render delegate is destroyed.
Added HDST_DUMP_FAILING_SHADER_SOURCEFILE debug flag to facilitate shader debugging.
Added texture filepath resolution for symlinks.
Added an "outHitNormal" parameter to UsdImagingGLEngine::TestIntersection().
Added ReloadResource in Storm which reloads shader files when they change.
Improvements to Hgi:
Changed GLenum usage in GlfBaseTextureData and others to use new HioFormat.
Changed Storm's frustum culling to be done via a vertex shader without a fragment shader.
Changed HdxShadowTask to specify that it should only render opaque and masked materials.
Changed cards UVs from face-varying to vertex interpolated.
Changed to GL_SAMPLE_ALPHA_TO_ONE when using alpha to coverage, the alpha computed after the framebuffer resolve is more meaningful.
Changed texture cards to require prims with UsdGeomModelAPI schema applied.
Changed type of UsdPrimvarReader.varname input from token to string.
Renamed various HdStGL classes to just HdSt, this is part of the transition of Storm to support multiple rendering APIs.
Enabled bindless shadow maps by default in Storm.
On first material sync in Storm, now we try to batch prims with identical textures together.
HdStDrawTarget's preferred mechanism are AOVs not GlfDrawTarget's. This change allows us to remove all GlfDrawTarget support from HdStDrawTarget.
Since HdStDrawTarget's no longer rely on the resolve task, removing code to communicate the draw target task render passes to the resolve task.
Deprecated HdSceneDelegate::GetTextureResource and will eventually be removed.
An application can now disable the PresentTask in hdx task controller.
When imaging basis curves, treat empty normals array the same as missing normals (i.e. draw as tube and not ribbon at higher complexities).
Store HgiResourceBindings and HgiPipeline objects on HdSt resource registry.
Switched (most of) the GPU frustum culling code from raw GL to Hgi.
With the addition of HgiMetal, all platforms we currently support (for Storm) support color correction and 16F targets.
Use BufferResource for GPU frustum cull result buffer so we can use the regular buffer binding APIs.
Load mipmap data in HgiMetal textures.
Changed signature of HgiDataSizeOfFormat so that it can return blockWidth and blockHeight. Returning block size in bytes for compressed formats.
Describe shader constants (push constants) in pipeline.
Using HgiCompute in smooth normals computation, switched flat normals and quadrangulate to HgiCompute, and converted HdStExtCompGpuComputation to Hgi.
Removed UsdImaging value cache API for all data except primvar descriptors and instance indices.
Removed unused hitMode field from HdxPickTaskContextParams.
Removed UsdImagingGLEngine::InvalidateBuffers().
Removed pre-multiply alpha behavior from volume.glslfx and changed renderPass.glslfx to allow fully transparent but still emissive volumes.
Removed pre-multiply alpha behavior from stb_image and make it optional via SubtextureIdentifier within the HdSt texture system.
Removed support of old-style draw targets using GlfDrawTarget instead of AOVs and render buffers.
Removed UsdUvTexture's rgba output, and updated the cards draw mode to now use "rgb" and "a" outputs rather than rgba.
Removed ReloadAllShaders from HdEngine.
Removed HD_DRAWITEM_DRAWN as it uses raw gl calls that map/unmap a buffer.
Removed HgiPipelineType. We split HgiPipeline into HgiComputePipeline and HgiGraphicsPipeline a little bit ago.
Removed resource bindings handle from pipeline.
Removed smooth normals CPU fallback path. Since previous releases required OpenGL 4.5 for Hgi to work, OpenGL compute must always be available.
Removed HdBinding::TBO.
Removed the implicit barriers from Hgi and let the external client manage synchronization via SubmitCmds.
Fixed potential dead-lock caused by parallel loading plugins.
Fixed lights to be turned off when invisible in UsdImaging.
Fixed issue with UsdImagingGLEngine::TestIntersection such that it now correctly populates. Callers of this function are reminded to provide the "frame" field in UsdImagingGLRenderParams for correct and performant results.
Fixed handling of computed primvar sources for meshes.
Fixed normals after complexity change.
Fixed HgiGL garbage collector leak when Hgi is recreated during process.
Fixed HgiGL to better protect against long labels when using glObjectLabel.
Fixed render settings behaviors so we test whether or not we're really changing anything before incrementing the settings version.
Fixed for cycle detection in material network processing.
Fixed Glf lighting resource binding.
Fixed USD edit dependency tracking for cards prims.
Updated UsdPreviewSurface clearcoat calculations to better match expected inputs for a specular lobe in Storm, and added clearcoat component to indirect lighting calculation in Storm. (Issue: #1307)
Added support for UsdPreviewSurface's opacityThreshold parameter in Storm. (Issue: #990)
Added support for normal mapping for UsdPreviewSurfaces in Storm. (Issue: #701)
Metallic materials should have an F0 equal to their base color in UsdPreviewSurface in Storm. (Issue: #1174)
Removed pre-multiplication behavior from OIT resolve shader. The preview surface (and other shaders) pre-multiply within the fragment shader (unless the "diffuseColor" and "opacity" params are connected to the same texture). (Issue: #1269)
Added support for UDIM texture scale and bias in Storm. (Issue: #1129)
Converted render index to usdImaging cachePath before calling the adapter InvokeComputation method. (Issue: #1333)
Fix draw mode adapter handling of transforms for instanced card prims. (Issue: #1251)
_IsVarying no longer clears dirty bit and now ProcessPropertyChange is filled out to provide more efficiency. (Issue: #1250)
USD_ABC_WRITE_UV_AS_ST_TEXCOORD2FARRAY
environment variable to 0.The "master" branch on GitHub has been renamed "release".
Improved error handling when building the RenderMan plugin. (Issue: #1054)
Various fixes and changes to build_usd.py:
--tools
and --no-tools
options.--embree
will now build the Embree library. The
--embree-location
parameter has been removed.Added support for "future division" in Python 2 to aid transition to Python 3.
Added ArResolver::CreatePathForLayer to allow users to customize behavior when writing a layer. SdfLayer now uses this method instead of creating a directory, which was not appropriate for non-filesystem uses. (Issue: #1148)
Added SdfReference::IsInternal. (PR: #1204)
Added fallback prim types feature, allowing clients to specify alternative schemas to use if a schema can't be found. See documentation for more details.
Added UsdPrim::ApplyAPI, RemoveAPI, AddAppliedSchemas, and RemoveAppliedSchemas. (Issue: #1218)
Added Python repr for generated schemas.
Added methods to UsdGeomPrimvar for processing property names.
Added methods to UsdGeomPrimvarsAPI for creating, removing, and blocking primvars. (Issue: #1100)
Improved documentation for UsdVol schema domain. (PR: #1203)
Improved documentation for UsdGeomMesh. (PR: #1254)
Improved diagnostic messages for plugin registration and loading.
Plugin search paths in PXR_PLUGINPATH_NAME can now be a symlink. Paths are now processed in order to ensure plugins in earlier entries take priority over those in later entries.
Replaced SdrShaderNode::GetSourceURI and GetResolvedSourceURI with GetResolvedDefinitionURI and GetResolvedImplementationURI to properly represent RenderMan C++ shaders.
Time sample times from layers whose timeCodesPerSecond value differ from the UsdStage are now automatically scaled to match. This can be disabled by setting the PCP_DISABLE_TIME_SCALING_BY_LAYER_TCPS environment variable, but we expect to remove this in a future release.
Significant changes and additions to value clips functionality. See documentation for more details:
Changed the strength ordering of entries in the apiSchemas metadata to be strongest-to-weakest, matching the ordering of references and other fields.
Constructing a UsdGeom::XformOp with an invalid attribute is no longer a coding error for consistency with other schemas and objects.
Deprecated many schemas in UsdRi in preparation for modernization efforts in a future release.
Removed support for deprecated "hermite" and "power" basis from UsdGeomCurves.
Fixed crash when removing many entries from an SdfPathTable. (PR: #1172)
Fixed compile error due to missing virtual destructor for PcpDynamicFileFormatInterface. (PR: #1156)
Fixed type conversions when setting metadata values using dictionaries in Python. (Issue: #813)
Fixed handling of stage metadata and session layer muting in UsdStage.
Fixed UsdFlattenLayerStack to handle mismatched attribute types and time-sampled asset paths. (PR: #1169)
Fixed undefined behavior issue with iterator comparisons. (Issue: #1146)
Fixed regression in handling of inherited bindings in UsdSkelCache.
Fixed crash in UsdSkelBakeSkinning. (PR: #1213)
Updated minimum required version of OpenGL to v4.5.
Added new texture system to Storm. This enables multi-threaded texture loading, uses Hgi, and frees the scene delegate from having to load textures. In a performance test using Nvidia's Attic scene, time to first image dropped by ~90%, from 115s to 10s.
Added first iteration of HgiMetal, a Metal-based Hgi implementation for Apple platforms. Currently, Hgi is used in several Hydra tasks to perform tasks like blitting, the goal is to slowly integrate Hgi in Storm.
Numerous updates to Hgi:
Added garbage collection to HgiGL for proper handling of resource destruction.
Added HdRendererPluginHandle, an RAII object for managing plugin lifetimes.
Added HdxAovInputTask which takes HdRenderBuffer and (if needed) uploads it to the GPU as HgiTexture.
Added support for down-sampling volumes in Storm.
Improved performance of volumes in Storm by not re-creating the entire volume shader when fields are animated.
Added support for UsdTransform2d node in Storm. (Issue: #1207)
Added support for UsdUVTexture scale and bias in Storm. (Issue: #1129)
Added USDIMAGINGGL_ENGINE_DEBUG_SCENE_DELEGATE_ID environment variable to specify scene delegate ID for debugging. (Issue: #1093)
Changed default version of HdSceneDelegate::GetScenePrimPath to strip delegate ID.
Replaced obsolete GL_GENERATE_MIPMAP with glGenerateMipmap. (Issue: #1171)
Added support for uint16 type for GL textures and OpenImageIO. (PR: #1212)
Restructured OpenImageIO support as a plugin to Glf. (PR: #1214)
Converted common Hydra tasks (e.g. HdxColorCorrectionTask, HdxPresentTask, HdxColorizeSelectionTask) to use Hgi.
Renamed HdxProgressiveTask to HdxTask.
Storm now uses Hgi for buffers, shaders, and programs instead of OpenGL.
HdStResourceRegistry is instantiated once per Hgi instance in Storm.
Unshared computation BAR are reused when possible. (Issue: #1083)
Improved handling of invalid cases in several areas. (PR: #1232, PR: #1201)
Improved performance of UsdImagingDelegate::SetTime. (Issue: #1166)
Improved performance for displaying meshes with large numbers of geometry subsets. (PR: #1170)
Normals are ignored on skinned meshes so they are computed post-skinning.
Inherited UsdSkel bindings are now respected.
Allow HdStRenderBuffer::Resolve() to change the size of the image. (PR: #1236)
Removed "catmark" token in pxOsd in favor of "catmullClark".
Removed UsdImagingGLMaterialTextureAdapter, UsdImagingGLDomeLightAdapter, GlfVdbTexture[Container], and GlfTextureContainer, which are unneeded with the new texture system.
Removed unused HdxColorizeTask and HdxFullscreenShaderGL.
Removed HdWrapLegacyClamp, which corresponded to the deprecated GL_CLAMP.
Removed uses of HdStGLSLProgram as part of a new strategy to create these via HdStResourceRegistry (since it has access to Hgi).
Removed transform feedback from non-instanced GPU culling in Storm.
Fixed incorrect handling of buffer array resizing to 0 elements. (Issue: #1230)
Fixed memory regression when calling UsdImagingDelegate::SampleTransform and SamplePrimvar.
Fixed error in UsdImaging when changing from a time where a mesh provided points or normals to a time that does not.
Fixed potential deadlocks if plugins were loaded at various points in UsdImagingGLEngine.
Fixed error when processing skinned prim with no joint influences.
Fixed change processing issue with native instanced prims. (Issue: #1163)
Fixed handling of widths primvar with no value.
Fixed "IsFlipped" computation for native instanced prims. (Issue: #1190)
Fixed crash when updating a removed primvar. (PR: #1223)
Fixed crash when reparenting an instance root. (Issue: #1245)
Fixed various issues with cards prims, including a crash issue. (Issue: #1210)
Fixed selection encoding/decoding of invisible native instances.
Fixed invalidation when changing the "purpose" attribute. (Issue: #1243)
--norender
.
(PR: #1192)Added support for arbitrary numbers of AOVs in HdPrman.
Removed deprecated RenderMan 22 Hydra plugin.
Material processing now uses SdrShaderNode::GetResolvedImplementationURI to locate shaders, which allows it consume shaders identified via UsdShadeShader's info:sourceAsset property.
Modified UsdVol support to allow easier extensions with custom volume plugin for RenderMan.
Fixed calculation of specularFaceColor in UsdPreviewSurfaceParameters.osl to better match the spec.
This release includes initial support for Python 3. Many thanks to our collaborators at Nvidia and SideFX for all of their work to make this happen!
The RenderMan 22 Hydra plugin is deprecated, and the deprecated Houdini and Katana plugins have been removed from the repository. See details below.
Added support for Python 3. This may be enabled by specifying
PXR_USE_PYTHON_3=TRUE
when running cmake or by running build_usd.py
with Python 3.
Updated C++ standard version to C++14 per VFX Reference Platform CY2018.
Updated CMake minimum version to 3.12. 2.x support was deprecated in 19.11.
Moved to Azure Pipelines for CI.
PySide2 is now preferred over PySide if both are installed. Users can specify
PYSIDE_USE_PYSIDE=TRUE
when running cmake to force the use of PySide.
Building examples and tutorials is now optional. (PR: #594)
Various fixes and changes to build_usd.py
Made OpenEXR an optional dependency. It is only required for enabling OpenImageIO, OpenVDB, or OSL support. (PR: #1082)
Fixed strict builds on Linux when building with boost version 1.61 or earlier. (PR: #1081)
Fixed issue where warnings from 3rd-party headers would cause strict builds to fail.
Fixed bug where the boost_python library would not be found when building against boost 1.67+.
Fixed bug where specifying PXR_BUILD_DOCUMENTATION=TRUE
but not
having required programs would result in an incomplete build.
(Issue: #1127)
Fixed incorrect instructions in README.md for running build_usd.py under Visual Studio 2017. (PR: #1120)
Fixed bug where build_usd.py would pick up external builds of boost 1.70 or later. (Issue: #1071)
Fixed bug in build_usd.py when building boost with Visual Studio 2019. (Issue: #1041)
Fixed issue where non-debug builds with Visual Studio 2019 would not work properly or crash immediately. (Issue: #1095)
Fixed several issues that caused errors when building a program against USD with clang on Windows. (Issue: #1030, PR: #1079)
Fixed issue where debug mode builds on Windows with Python bindings enabled would fail without a special debug build of Python. (PR: #785, Issue: #1006)
Added typed value proxies to VtValue.
Added SdfPathAncestorsRange for iterating over an SdfPath's ancestors.
Added convenience scenegraph object accessor APIs to UsdPrim and UsdStage.
Added UsdPrim::GetInstances to get all instances of a master. (Issue: #962)
Added UsdPrimDefinition to represent the built-in properties of a given prim. Users can access a prim's definition via UsdPrim::GetPrimDefinition.
Added UsdUtilsConditionalAbortDiagnosticDelegate, a diagnostic delegate that aborts when an error or warning is encountered based on text-matching rules.
Added UsdUtilsSparseValueWriter::GetSparseAttrValueWriters to help with debugging. (PR: #1038)
Added UsdGeomHermiteCurves schema.
Deprecated 'hermite' and 'power' basis for UsdGeomBasisCurves.
Removed remnants of relationship-based shader encoding from UsdShade schemas.
Removed "shadow:include" and "shadow:exclude" from UsdLuxShadowAPI schema.
Removed raw spec access API from UsdSchemaRegistry in favor of the new UsdPrimDefinition objects.
For static USD builds, the Plug library now resolves plugin paths relative to the path of the executable that links to USD.
SdfLayer and UsdStage API for timeCodesPerSecond now fall back to using framesPerSecond if no timeCodePerSecond is specified.
Numerous optimizations for UsdStage load time and authoring speed.
UsdStage now sends notification when population mask, load rules, and interpolation type are changed. (Issue: #1139)
Applied API schemas now impart their properties and fallback values as builtins on the applied prim.
Concrete typed schemas can now provide fallback metadata values.
C++ typenames for schemas are no longer supported as prim typenames in scene description.
UsdGeomImageable now computes 'purpose' using non-pruning semantics. See documentation for UsdGeomImageable::ComputePurpose for a description of the new behavior.
Various fixes and changes for usdGenSchema
Fixed race condition in UsdGeomBoundable::ComputeExtentFromPlugins that could cause incorrect results for bounds computations.
Fixed bug with value block handling in UsdFlattenLayerStack.
Fixed incorrect documentation on crate file structure. (Issue: #1072)
Fixed change processing bug for nested instancing that led to crashes.
Fixed bug reading .usdc files in .usdz files if USDC_USE_PREAD=1 was set.
Fixed usdedit failure on Windows due to file access conflicts. (PR: #1094)
Fixed line ending issue causing some tests to fail on Windows. (PR: #848)
We anticipate aligning with the version requirements from the VFX Reference Platform CY2018 (https://vfxplatform.com) in the next release. In particular, this includes requiring support for C++14.
This release adds a Hydra plugin for RenderMan 23 and removes the deprecated Maya plugin from the repository. This release also deprecates support for the Houdini and Katana plugins. See details below.
The source tree has been restructured so that code no longer lives under a separate "lib" directory. This means that (with a few exceptions) include paths now match source tree paths.
Added support for Visual Studio 2019 to build_usd.py. (PR: #1042)
Added PXR_BUILD_USD_TOOLS option to disable building of command-line tools (e.g. usdcat, usdedit) (PR: #1048)
The PXR_LIB_PREFIX option now defaults to "" and is respected for .lib files on Windows. (Issue: #1027)
Added "subIdentifier" and "sourceType" parameters to GetNodeFromAsset API in Ndr and Sdr and "subIdentifier" attribute to UsdShadeShader schema. This allows clients to identify and retrieve definitions for a particular shader in source assets that have multiple shaders defined in them. (Issue: #919)
Removed unused legacy SdfVariabilityConfig variability value.
Fixed bug where prims in masters would be populated incorrectly when a UsdStage's population mask contained paths descendant to masters.
Fixed bug where layer stack flattening would lose some variant selections. (Issue: #1060)
UsdStage::CreateClassPrim is no longer restricted to root prims. (Issue: #994)
UsdVariantSets::GetNames() now returns the union of all variant set names across layer stacks.
Improved performance of retrieving metadata with templated API in UsdObject.
Numerous changes to improve performance when making edits to many properties.
Removed support for inverse layer offsets which were deprecated in v0.8.2.
Removed support for legacy UsdShade encodings, yielding cleaner code and improved performance.
Improved diagnostics in usdGenSchema for non-identifier tokens in schema.usda.
Improved documentation generated by usdGenSchema for schema attributes.
usdGenSchema now treats all C++ and Python keywords as reserved and will prepend a "_" if they are encountered in any identifiers.
Modified UsdGeomXformCommonAPI to be generated and behave like other API schemas (as the name implies) for consistency.
Fixed bug in UsdGeomImageable::MakeVisible where the given prim would not be made visible if other "invis" opinions existed on ancestor prims. (PR: #1043)
Fixed bug in UsdGeomSubset::GetUnassignedIndices where passing in an invalid element count could lead to a crash. (Issue: #989)
Removed deprecated shader binding API on UsdShadeMaterial in favor of UsdShadeMaterialBindingAPI schema.
Improved fidelity of light-related UsdRi schemas.
Added UsdLuxDomeLight::OrientToStageUpAxis utility for creating dome lights with an appropriate default orientation. (Issue: #938)
Added UsdMedia schema library and UsdMediaSpatialAudio schema.
Fixed bugs in UsdSkelCache::ComputeSkelBinding where inherited skel:skeleton bindings were incorrectly evaluated and bindings would be returned for inactive prims.
Python binding for UsdSkelSkinningQuery is now UsdSkel.SkinningQuery.
This release deprecates support for cmake 2.x and the Maya plugin. See details below.
Added warning when reading a .usda layer with size in MB greater than value of SDF_TEXTFILE_SIZE_WARNING_MB environment variable. (PR: #980)
Added UsdStageLoadRules to support more robust and declarative intent about how payloads should be included in a UsdStage.
Added UsdPrimCompositionQuery to facilitate discovery of composition arcs affecting a UsdPrim.
Added "timecode" scene description value type. This type is represented by the SdfTimeCode class and can be used for attribute and metadata values. Layer offsets are applied to all timecode values during UsdStage value resolution, enabling "timing curve"-like attributes.
Added support for Google's Draco compression library. This includes an SdfFileFormat plugin for reading .drc files and a standalone "usdcompress" tool that extracts and compress Mesh primitives from a USD file, creates .drc files for each one, and references them back into a result USD file. (PR: #912)
Added --quiet flag to usdGenSchema for suppressing output. (PR: #480)
Added --brief flag to usddiff so differing lines are not printed.
Added support for indexed uint primvars to UsdGeomPrimvar. (PR: #861)
Added "accelerations" attribute to UsdGeomPointInstancer schema and updated UsdGeomPointInstancer::ComputeInstanceTransformAtTime(s) to account for authored accelerations, if present.
Added "accelerations" attribute to UsdGeomPointBased schema and added UsdGeomPointBased::ComputePointsAtTime(s) to compute point positions using authored velocities and accelerations, if present.
Added initial version of UsdRender domain and schemas. See documentation and white paper on openusd.org for more details. (Issue: #910)
Added UsdShadeInput::GetValueProducingAttribute to facilitate more robust and correct processing of UsdShade shading networks.
Added initial support for skinning mesh normals in UsdSkel.
Removed SdfAbstractDataSpecId and updated the SdfAbstractData interface to use SdfPath in its place. Existing SdfAbstractData subclasses must be updated to match. See this usd-interest post for more details: https://groups.google.com/forum/#!topic/usd-interest/IVmd1t1GKBA
Numerous fixes for C++14 / gcc6 warnings. (PR: #869)
Various optimizations and cleanups in trace library.
Inherits and specializes arcs that target root prims ("global" arcs) are now combined with arcs that target sub-root prims ("local" arcs) for strength ordering in composition. Previously, local arcs would always be considered stronger than global arcs regardless of their authored order.
Calling UsdReferences::SetReferences (and equivalent API on UsdPayloads, UsdInherits, and UsdSpecializes) with an empty vector now authors an explicit empty list op instead of being a no-op. (Issue: #749)
Numerous fixes and changes to Sdr and associated parser plugins. This includes the addition of a "terminal" property type and "role" and "renderType" metadata to better describe shader properties and their representation in scene description.
Numerous optimizations for UsdStage load time and authoring speed.
Improved performance of adding empty sublayers to an existing UsdStage.
USD native instancing now includes both LoadRules and PopulationMasks in instancing keys, so different instances can have different load state. Instances that have equivalent load rules and population masks still share, but those that do not will use different masters.
Load/Unload operations on a UsdStage now must operate on the "expanded" stage namespace. That is, the namespace as it would be if instancing was disabled.
Updated UsdLuxDomeLight schema to clarify a dome light's orientation and its textures' orientation. (Issue: #938)
Changed 'pointIndices' attribute on UsdSkelBlendShape schema from uint[] to int[] for consistency with other core schemas. (Issue: #858)
Rewrote UsdSkelBakeSkinning to provide a more efficient baking solution.
Fixed bug where converting .usdc files from version 0.7 to 0.8 when saving an existing file would produce incorrect layer offsets in payloads.
Fixed crashes when calling methods on invalid Usd.SchemaBase objects in Python. (Issue: #872, PR: #876)
Fixed crash when muting and unmuting layers on a UsdStage. (Issue: #883)
Renamed the real-time engine/rasterizer to "Storm"
Added support for dome lights in Storm.
Added support for screen-space adaptive tessellation and drawing for Loop scheme subdivision surface meshes when using OpenSubdiv 3.4 in Storm.
Added basic support for AOVs in Storm. In usdview, you can now switch between color and depth when using Hydra Storm.
Added Hgi (Hydra Graphics Interface) library. Hgi abstracts away graphics API calls in Storm.
Added HgiGL library, an OpenGL backend implementation for Hgi.
Added support for vstructs in Hydra RenderMan plugin.
Added support for light attributes in UsdImaging and Hydra RenderMan plugin.
Added an adapter in UsdImaging to read camera information, including custom camera parameters.
Added support for physical camera parameters in Hydra and Hydra RenderMan plugin.
Added support for camera motion blur in Hydra RenderMan plugin.
Added support to read any number of time samples authored in Usd. Improved Hydra API to allow render delegates to extract any number of samples from scene delegates.
Added API to HdRenderDelegate and the render thread to pause and resume renderers if supported. Updated Hydra RenderMan plugin to support it. (PR: #888)
Added API to HdRenderDelegate to return render stats to the client. Updated Hydra Embree to expose the number of samples completed this way. (PR: #888)
Added element/scope selection highlighting for raytraced backends.
Added basic support for NURBS curves to UsdImaging. For now, it will send them to the render delegate as basis curves.
Added support for UsdShadeNodeGraph to UsdImaging.
Added support for acceleration primvars in UsdImaging and Hydra.
Added support for inherited primvars to native instances.
Added instance-inheritance support for string-typed primvars.
Added convergence criteria to render settings in Hydra RenderMan.
Added support for basis curves instancing in Hydra RenderMan plugin.
Added support for OpenImageIO's IOProxy feature to allow supported image files (such as .exr) to be read from .usdz files.
Added "Set As Active Camera' on USD camera prims context menu in usdview.
Added a "Pause" menu item to usdview, and display the render status message.
Replaced the key/fill/back lights in usdview by a dome light, still only works in Storm for now.
Deprecated old material accessors on HdSceneDelegate in favor of using material networks in Storm.
Removed TrackVariabilityPrep/UpdateForTimePrep in UsdImaging.
Moved usdShaders from usdImaging/lib to usdImaging/plugin.
Moved rendererPlugin and rendererPluginRegistry from hdx to hd.
Moved UsdPreviewSurface conversion to the MatfiltFilterChain in Hydra RenderMan plugin.
Changed return type of HdRenderBuffer::Map from uint8_t to void*.
Improved handling of invalidations and edits of data such as instancers, primvars and others, in UsdImaging.
Improved 32 bit color support when using Hydra and the default task controller.
Improved draw item batching in Hydra Storm. (PR: #528)
Improved GLSL error reporting in Storm.
Improved usdrecord to allow more consistent results with usdview (e.g., default materials, purpose).
Prim browser in usdview now maintains its expansion-state and view when the stage recomposes.
Prim browser in usdview now behaves more like Maya's outliner with respect to viewport selections: the PrimView will no long expand/scroll to display the selected prim until you use the 'f' hotkey over it to frame the selection. Instead, all of the ancestors of selected prims will be highlighted in a secondary color.
Searches in the usdview prim browser begin at the currently selected prim rather than at the root of the scene.
Made usdview panes easier to resize by doubling size of splitter lanes.
Made usdview timeline playhead much larger to make it easier to grab.
Fixed inheriting primvars through instance boundaries when the primvar is an array.
Fixed the way UsdGeomPointInstancer calculates purpose and visibility across instance/master boundaries.
Fixed memory leak for draw items in Storm.
Fixed handling infinite bounds explicitly during GPU frustum culling in Storm.
Fixed UsdShadeShader material invalidations in UsdImaging.
Fixed handling of topology changes for basis curves in Storm.
Fixed ortho camera handling in Hydra RenderMan plugin.
Added general methods for converting between USD values and GA_Attribute data.
Fixed missing usdSkel dependency. (PR: #827)
Detect skinning influences stored as detail attribs when converting to capture attributes. This allows rigid shapes to be coalesced into deforming agent shapes.
Point instancers with velocities now get motion blur on the first frame, even if their positions are not sampled at any previous frames.
Katana paths are now better aligned with USD paths when possible for point instancer prototypes.
Includes "prmanLightParams.iesProfileNormalize" when reading UsdLux lights in as RenderMan representations
Fixed bug where per-instance primvar values on point instancers could be inherited by the prototype geometry, causing warnings about mismatched sizes. (Issue: #893)
Deprecated Maya plugin in favor of the Autodesk maya-usd plugin available at https://github.com/Autodesk/maya-usd. We anticipate removing the plugin from the USD repository in the next release and recommend users begin transitioning to the Autodesk plugin -- it contains the same features as the Pixar plugin (in fact, it is the same code).
FindMaya.cmake module on MacOS (once again) supports paths that include the "Maya.app/Contents" subdirectory when specifying MAYA_LOCATION. (PR: #878)
Visibility for Maya point instancers is now exported to UsdGeomPointInstancer.
Maya "stroke" nodes are now exported as UsdGeomBasisCurves. (Issue: #867)
Various bug fixes and cleanup.
USDGEOM_POINTINSTANCER_NEW_APPLYOPS
to 0, but this will be removed
in a future release.Build:
--opencolorio
argument to support new color management functionality in Hydra.USD:
Enabled usddumpcrate utility for viewing .usdc file information in the build. (PR: #470)
Internal payloads, list editing and layer offsets for payload arcs. Payloads now provide the same set of features as references.
This may affect backwards compatibility of layers written with this version of USD:
API for querying authored and inherited primvars in UsdGeomPrimvarsAPI schema.
Optional 'jointNames' attribute to UsdSkelSkeleton to help DCC import/export.
Imaging:
Houdini plugin:
Katana plugin:
Maya plugin:
Build:
USD:
Imaging:
Katana plugin:
Maya plugin:
USD:
Katana:
Build:
USD:
Imaging:
Alembic plugin:
Houdini plugin:
Maya plugin:
USD:
Imaging:
Houdini plugin:
Katana plugin:
Maya plugin:
Build:
USD:
Imaging:
Maya plugin:
Build:
Imaging:
USD:
Imaging:
Houdini plugin:
Katana plugin:
Maya plugin:
USD:
Imaging:
[hd, usdImaging] Hydra support for UsdVol schema. (PR: #567)
[hd, hdSt] Topology visibility operations for meshes in Hydra.
[hd, hdSt] Support for inverting the depth test of a draw target.
[hd, hdSt] "Flat normals" computed buffer source for meshes.
[hdx] ResolveNearestToCenter pick hit resolution method for ray picking.
[usdview] Menu for switching AOVs for supported backends.
[usdview] Menu for backend-specific settings.
Alembic plugin:
USD_ABC_XFORM_PRIM_COLLAPSE
to 0.
(PR: #527)Maya plugin:
Houdini plugin:
USD:
Imaging:
Maya plugin:
Katana plugin:
Houdini plugin:
Imaging:
Build:
USD:
Imaging:
Houdini plugin:
This release includes several major new features and changes, including:
Build:
--build-args
option.PXR_BUILD_USDVIEW=OFF
when running cmake or --no-usdview
when running build_usd.py.Boost_USE_STATIC_LIBS
to cmake on Windows. Note that
static boost libraries may lead to issues with Python bindings.
(Issue: #407)USD:
PXR_ENABLE_OSL_SUPPORT=TRUE
when running cmake.PXR_BUILD_MATERIALX_PLUGIN=TRUE
when running cmake.Imaging:
UsdImaging:
Light linking support.
Initial support for USD material preview nodes. For more details, see: http://graphics.pixar.com/usd/docs/UsdPreviewSurface-Proposal.html
Currently unimplemented features include:
Alembic plugin:
Maya plugin:
Katana plugin:
Houdini plugin:
Build:
PXR_ENABLE_GL_SUPPORT=FALSE
when running cmake. This will
disable all GL-based functionality, including usdview.PXR_BUILD_OPENIMAGEIO_PLUGIN=TRUE
when running CMake or --openimageio
when running build_usd.py.USD:
USD_WRITE_NEW_USDC_FILES_AS_VERSION
to an older version.Imaging:
UsdImaging:
USDIMAGING_ENABLE_SCENE_LIGHTS
to 0.Alembic plugin:
Maya plugin:
Build:
USD:
Build:
USD:
Imaging:
UsdImaging:
Alembic plugin:
Katana plugin:
Houdini plugin:
PIXMAYA_LINEAR_COLORS
environment variable.USD now requires TBB version 4.4 Update 6 or later.
Removed GLUT dependency for libtiff in build_usd.py. (Issue: #402)
build_usd.py will now use cURL to download dependencies if it's installed in the user's PATH. This can help avoid TLS v1.2 errors when downloading from certain sites. (Issue: #449)
Numerous documentation additions and fixes throughout the codebase.
Improved performance of SdfCopySpec and UsdUtils stitching API; one test case showed a 35% speed improvement, from 160s to 118s.
SdfLayer now uses the resolved path provided by Ar for a given identifier to determine the layer file format. (Issue: #144)
Simplified API for setting layer data in SdfFileFormat subclasses.
Adding or removing invalid sublayers now results in composition errors.
UsdStage::CreateNew and CreateInMemory now accept an InitialLoadSet argument. This controls whether new payloads are loaded automatically. (Issue: #267)
UsdStage::ExpandPopulationMask now considers attribute connections.
UsdStage::Flatten now authors anchored asset paths in flattened results.
UsdTraverseInstanceProxies() now includes instance proxy prims that pass the default predicate instead of all prims.
.usdc files now support zero-copy array access, which can significantly improve performance. This feature is supported by all .usdc file versions, but may not be activated for certain files depending on their data alignment. In these cases, users can simply re-export the file to activate zero-copy access.
Users can set the environment variable USDC_ENABLE_ZERO_COPY_ARRAYS
to 0
to disable this feature. Users can also track cases where array data is
copied due to modifications by setting the environment variable
VT_LOG_STACK_ON_ARRAY_DETACH_COPY
to 1.
Other performance improvements in UsdStage composition.
API schemas are now classified as either "applied" or "non-applied". See "Generating New Schema Classes" tutorial for more information.
Behavior of UsdUtils stitching API can now be customized via callbacks.
UsdShadeMaterialBindingAPI now issues a warning when computing resolved
material bindings if prims with old "look:binding" relationships are found.
This can be disabled by setting the environment variable
USD_SHADE_WARN_ON_LOOK_BINDING
to 0.
UsdRiMaterialAPI now supports writing ri:surface outputs. ri:bxdf outputs are
still written by default, but this can be disabled by setting the environment
variable USD_RI_WRITE_BXDF_OUTPUT
to 0.
UsdRiStatementsAPI now supports encoding ri attibutes as primvars. This is
disabled by default but can be enabled by setting the environment variable
USDRI_STATEMENTS_WRITE_NEW_ATTR_ENCODING
to 1.
Additions and improvements to UsdLux and UsdSkel schemas.
Hydra backends that consume full network materials now receive all primvars for all rprims, not just those with bound materials.
Several improvements to primvar handling and picking infrastructure in Hydra.
Several performance improvements in Hydra, especially for material bindings and scenes with heavy nesting of instances.
Ongoing work on Hydra compute framework.
Conformed Hydra API to use "Primvar" instead of "PrimVar".
HdMaterialNetwork is now emitted in topological order.
Redundant animation data is no longer written during Maya export.
Katana plugin now allows parent scope names for materials other than "Looks".
This can be enabled by setting the USD_KATANA_ALLOW_CUSTOM_MATERIAL_SCOPES
environment variable to 1.
Refactor material loading in Katana plugin so that material locations aren't computed all at once and site ops can run on each location individually.
Improved construction of material terminal outputs in Katana plugin.
Caching improvements in Houdini plugin to share USD stages between loaded primitives when possible.
Improved error handling and reporting in Houdini plugin.
USD stage masking in Houdini plugin can now be disabled via
GUSD_STAGEMASK_ENABLE
environment variable.
Improved performance when opening USD stages which don't use "component" kind in their model hierarchy.
Object-level transforms are now written at a higher-level scope than leaf primitives if possible in Houdini plugin.
PXR_OVERRIDE_PLUGINPATH_NAME=<name>
when running cmake.Compression in .usdc files for integer arrays and scalar floating point arrays. The latter are compressed if the values are all integers or there are a small number of unique values. In the example Kitchen Set asset on the USD website, the total size of the geometry layers decreased by ~46%, from 25 MB to 14 MB.
.usdc files with this new compression enabled are marked as version 0.6.0
and are not readable by earlier releases. These files are not written by
default; this may be enabled by setting the environment variable
USD_WRITE_NEW_USDC_FILES_AS_VERSION
to "0.6.0".
Ability to record and query API schemas that have been applied to a prim via new Apply method on API schema classes, UsdPrim::GetAppliedSchemas and UsdPrim::HasAPI. Custom API schemas should be updated with these new methods by re-running usdGenSchema.
GetUnionedTimeSamples and GetUnionedTimeSamplesInInterval functions for UsdAttribute and UsdAttributeQuery.
Ability to offset time for active value clips when using template clip metadata via "templateActiveOffset" entry.
UsdUtilsGetDirtyLayers for retrieving dirty layers used by a UsdStage.
GetTimeSamplesInInterval functions for UsdGeomXformOp, UsdGeomXformable and UsdGeomXformable::XformQuery.
UsdShadeMaterialBindingAPI, which provides an interface for binding materials to prims or collections of prims and computing the final bound material for a prim via "material resolution".
Numerous features and documentation for UsdSkel schema.
"Save Flattened As" functionality in usdview.
Plugin mechanism in usdview that allows users to add custom commands and menus. See new tutorial for more details.
Partial support for RenderMan for Maya lights in the Maya plugin.
PxrUsdIn.BootstrapMaterialGroup op in Katana plugin for more robustly reading a Looks scope from a .usd file
USD_AUTHOR_OLD_STYLE_ADD
to 1.USD_SHADE_WRITE_NEW_ENCODING
to 0.HD_ENABLE_TINY_PRIM_CULLING
to 1.
(Issue: #314)Release 0.8.2 increments the file format version for .usdc files. New .usdc files created in this release will not be readable by earlier releases. See below for more details.
Build system now checks that the compiler being used supports 64-bit builds.
Tf diagnostic warnings and status messages issued in secondary threads are no longer printed to the terminal.
Multiple delegates may now be registered with the Tf diagnostic system.
SdfLayer::RemoveInertSceneDescription removes inert overs in variants.
When saving a new .usdc file over an existing file, data is first saved to a temporary file then renamed to the destination file. This provides some protection for other processes that were reading the old file.
Compression for structural sections in .usdc files is now enabled by default. New .usdc files will be marked as version 0.4.0 instead of 0.3.0 to accommodate a bug fix described below. This means that any new .usdc files created in this release will not be readable by previous USD releases.
Users can disable the compression functionality by setting the environment
variable USD_WRITE_NEW_USDC_FILES_AS_VERSION
to "0.0.1". This will ensure
new .usdc files will be readable in older releases.
UsdStage now uses the composed layer offset instead of its inverse when mapping times in layers to the stage. For example, to shift the time samples in a referenced layer stack forward by 10, users previously authored an offset of -10. Under the new behavior, users need to author an offset of 10 instead.
Users can revert to the old behavior by setting the environment variable
USD_USE_INVERSE_LAYER_OFFSET
to 1. This will be deprecated in a future
release.
UsdStage now allows a prim to be loaded without loading its descendants via a new UsdLoadPolicy argument supplied to UsdStage::Load and LoadAndUnload.
UsdInherits, UsdSpecializes, and UsdReferences now map non-root prim paths to the namespace of the edit target.
UsdAttribute::GetTimeSamplesInInterval now supports open/finite end points.
UsdClipsAPI now authors the dictionary-style clips metadata introduced in release 0.7.6 by default.
Schemas may now define fallback values for the majority of metadata fields, including custom metadata fields.
Schemas may now have more than 256 tokens defined.
usdedit now checks USD_EDITOR
environment variable first when determining
which editor to use.
Ongoing refactoring to move code from hd to hdSt in preparation for material support in Hydra and use of Hydra in other renderer backends.
Several performance optimizations in Hydra and UsdImaging.
usdview now uses a new JSON-based format for its settings file. Settings files from older releases will be ignored.
Several changes to provide better support for Viewport 2.0 in Maya plugin.
Enum attributes in Maya now have their integer values exported to USD instead of their descriptive names.
Improved attribute transfer on USD Unpack node in Houdini plugin.
usdvisible and usdactive attributes in Houdini plugin are now integers instead of strings.
Several changes to Houdini plugin for compatibility with Houdini 16.5 and improved HDK usage.
USD_WRITE_NEW_USDC_FILES_AS_VERSION
environment setting.--validate
argument to sdfdump for checking file validity.USDC_MMAP_PREFETCH_KB
environment variable.USDC_DUMP_PAGE_MAPS
environment variable.PYSIDE_USE_PYSIDE2=TRUE
to CMake to force the use of PySide2.Made Python dependency optional. Python support is enabled by default but
may be disabled by specifying PXR_ENABLE_PYTHON_SUPPORT=FALSE
to CMake
or --no-python
to build_usd.py.
build_usd.py now requires that users install PyOpenGL manually. (Issue: #264)
Replaced addedOrExplicitItems attribute on Sdf.*ListOp in Python with GetAddedOrExplicitItems method.
Renamed Append... methods on composition arc APIs (e.g. UsdReferences, UsdInherits) to Add... and added a position argument to support new "append" and "prepend" operations.
Calling these functions with the default UsdListPositionTempDefault argument
will author "add" operations, maintaining the previous behavior. We anticipate
removing UsdListPositionTempDefault and replacing it with UsdListPositionFront
so that "prepend" operations will be authored by default in 0.8.2. Users may
enable this behavior now by setting the USD_AUTHOR_OLD_STYLE_ADD
environment
variable to false.
UsdStage now issues warnings for invalid layers it encounters instead of errors, which cause exceptions in Python.
Code generation templates and schema.usda files used by usdGenSchema are now installed as part of the build. Schemas can now use asset paths like "usdGeom/schema.usda" or "usdShade/schema.usda" instead of absolute paths to add installed schemas as sublayers. (Issue: #158, Issue: #211)
Improved USD scenegraph instancing to allow more sharing of assets with inherits or specializes arcs. In one large example, this decreased stage load time by ~60%, stage memory usage by ~65%, and time to first image in usdview by ~20%.
Several optimizations to reduce I/O operations for .usda and .usdc files.
Add support for compressed structural sections in .usdc files. This can significantly decrease file sizes for files that are dominated by prim and property hierarchy; one production shading file decreased in size by ~94%, from 21 MB to 1.3 MB.
Compressed files are marked as version 0.3.0 and are not readable by earlier
USD releases. To help with transition, USD will not write these compressed
files by default until a future release. Users may enable this feature now
by setting the USD_WRITE_NEW_USDC_FILES_AS_VERSION
environment variable
to "0.3.0". We plan to add compression for geometry data and time samples
in a future release.
UsdUtilsExtractExternalReferences now checks for references to external files in property values and metadata.
Increased precision for rotations attribute in UsdSkelPackedJointAnimation schema to 32-bit.
UsdGeomPrimvar now allows primvar names with arbitrarily-nested namespaces.
Sizeable refactor in Hydra to support sprims more like rprims in anticipation of future lights and material support.
Hydra no longer syncs rprims that are not visible.
Several performance and stability fixes to point instancer handling in Hydra.
"Reload All Layers" in usdview will try not to reset the camera or timeline.
Numerous other improvements to usdview.
The Alembic reader now converts single samples for properties in .abc files to single time samples in USD, instead of default values.
Updated required Katana version to Katana 2.5v1.
Improved bounds computations for point instancers in Katana plugin
Account for motion sample time overrides when computing bounding boxes in Katana plugin.
Improved stage cache in Houdini plugin, which can have significantly better performance in some circumstances.
Improved handling of instanced USD primitives in Houdini plugin.
--no-embree
did the opposite.
(Issue: #276)--force-all
or --force
on a
Python dependency would cause the script to error out early.
(Issue: #263)build_scripts/build_usd.py
for building USD and its dependencies.HD_ENABLE_SHARED_VERTEX_PRIMVAR
.USD_ABC_NUM_OGAWA_STREAMS
,
which defaults to 4.--camera
command line argument to usdview to specify the initial
camera to use for viewing.PXR_ENABLE_HDF5_SUPPORT=FALSE
to CMake.USD_AUTHOR_LEGACY_CLIPS
is set
to 0. This will be disabled in a future release.USD_SHADE_WRITE_NEW_ENCODING
is set to 1. This will be enabled
in a future release.C++ namespaces are now enabled by default. The PXR_ENABLE_NAMESPACES
CMake
option may be used to disable namespaces if needed.
This release adds initial experimental support for building the USD core libraries on Windows.
PXR_ENABLE_PRECOMPILED_HEADERS
CMake option.HD_DISABLE_TINY_PRIM_CULLING
flag for TF_DEBUG
to make it easier
to turn off tiny prim culling for debugging.PXR_ENABLE_PTEX_SUPPORT=FALSE
to CMake.--compose
command line parameter for usddiff is now --flatten
PCP_PRIM_INDEX
and PCP_PRIM_INDEX_GRAPHS
TF_DEBUG
flags.
(Issue: #157)USD now supports C++ namespaces. They are disabled by default in this release to ease transition, but we anticipate enabling them by default in the next release.
Specify the PXR_ENABLE_NAMESPACES
CMake option to enable namespaces.
See documentation in BUILDING.md for more details.
PXR_ENABLE_NAMESPACES
option to CMake. See documentation in
BUILDING.md for more details.PXR_LIB_PREFIX
option to CMake.PXR_BUILD_TESTS
option
with CMake.Fixed issue that caused Alembic plugin (usdAbc) to be misconfigured at build time, which required users to manually update its plugInfo.json and set an environment variable at runtime to make it work. This plugin is now installed to $PREFIX/plugin/usd/ and requires no additional steps to use once it has been built.
Fixed issue with .usdc files that resulted in corrupted files on Windows. The file structure was changed, so the .usdc version has been bumped from 0.0.1 to 0.1.0. USD will continue to write 0.0.1 files by default, but will begin writing 0.1.0 files in the near future.
Users may choose to write files with the new version immediately
by setting the environment variable USD_WRITE_NEW_USDC_FILES_AS_VERSION
to "0.1.0".
Note that 0.0.1 files are still readable using this release, except for those that have been generated on Windows using 0.7.0. Early testers on Windows will need to regenerate those files with this release.
Fixed issue that caused usdGenSchema to generate files that could not be compiled.
Added a workaround for TBB-related issue in Maya that caused hangs when
using the USD Maya plugin. This can be enabled at build time by
specifying the PXR_MAYA_TBB_BUG_WORKAROUND
option to CMake.
Various other bug fixes and performance improvements.
Initial release
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。