Configuration and Settings#
The Fabric Scene Delegate can be configured through various Carbonite settings. This page documents all available settings that control FSD behavior.
Many of these settings can be found in the UI, at Edit → Preferences → Rendering → Fabric Scene Delegate.
Scene Delegate Preferences#
Enable Fabric Scene Delegate#
- Setting Path:
/app/useFabricSceneDelegate- Type:
Boolean
- Default:
true(from Kit 109.0 and later,falsein earlier versions)
Master switch to enable or disable the Fabric Scene Delegate. When disabled, the system falls back to OmniHydra.
Note
This setting is not persistent by default and needs to be re-enabled between Kit sessions. This behavior may change in future releases.
Fabric Population Settings#
These settings control how USD data is populated into Fabric. They typically control what data is read from USD into Fabric and how it is processed, or toggle heuristics that provide performance optimizations at the expense of occasionally incorrect behavior.
readCurves#
- Setting Path:
/app/usdrt/population/utils/readCurves- Type:
Boolean
- Default:
true
Enable or disable reading curve data from USD into Fabric.
readMaterials#
- Setting Path:
/app/usdrt/population/utils/readMaterials- Type:
Boolean
- Default:
true
Enable or disable reading material data from USD into Fabric.
readVolumes#
- Setting Path:
/app/usdrt/population/utils/readVolumes- Type:
Boolean
- Default:
true
Enable or disable reading volume data from USD into Fabric.
readLights#
- Setting Path:
/app/usdrt/population/utils/readLights- Type:
Boolean
- Default:
true
Enable or disable reading light data from USD into Fabric.
readPrimvars#
- Setting Path:
/app/usdrt/population/utils/readPrimvars- Type:
Boolean
- Default:
true
Enable or disable reading primvar (primitive variable) data from USD into Fabric.
mergeMaterials#
- Setting Path:
/app/usdrt/population/utils/mergeMaterials- Type:
Boolean
- Default:
false(from Kit 108 and later,truein earlier versions)
Enable material deduplication during population. When enabled, identical materials are merged to save memory and improve performance.
Note
Material merging is currently incompatible with NeurayLib materials. This will be fixed in a future release.
enableFastDiffing#
- Setting Path:
/app/usdrt/population/utils/enableFastDiffing- Type:
Boolean
- Default:
true
Enable optimized diffing algorithm for detecting changes in USD data. This significantly improves performance when synchronizing USD resync changes (such as toggling payloads, switching variants, adding new layers etc.) to Fabric, but may cause certain USD changes to be missed (typically changes to array data such as mesh points).
createAllMaterials#
- Setting Path:
/app/usdrt/population/utils/createAllMaterials- Type:
Boolean
- Default:
false
When enabled, creates Fabric representations for all materials in the USD stage, even if they’re not currently assigned to any geometry.
enableIntermediateInstanceProxyPopulation#
- Setting Path:
/app/usdrt/population/utils/enableIntermediateInstanceProxyPopulation- Type:
Boolean
- Default:
false
Enable population of intermediate instance proxy prims. Disabling this feature may save a significant amount of memory.
Note
This feature affects how USD scene graph instancing is represented in Fabric.
enableRendererInstancing#
- Setting Path:
/app/usdrt/population/utils/enableRendererInstancing- Type:
Boolean
- Default:
false
Enable renderer-side USD scene graph instancing optimization. When enabled, scene graph instancing is performed in the renderer rather than during the Fabric population process. This may save a significant amount of memory and improve performance.
Note
This feature is currently experimental and is supported only by the RTX renderer. It affects how USD scene graph instancing is represented in Fabric.
instanceCompactTransforms#
- Setting Path:
/app/usdrt/population/utils/instanceCompactTransforms- Type:
Boolean
- Default:
false
Deprecated since version 108.0: This setting is deprecated from Kit 108.0 and should no longer be used.
Use compact transform representation for instances to reduce memory usage. Mutually exclusive with useMatrixForInstanceProxyTransforms.
evaluateXformsTimeSamples#
- Setting Path:
/app/usdrt/population/utils/evaluateXformsTimeSamples- Type:
Boolean
- Default:
false
When enabled, time-sampled transforms are fully evaluated and stored in Fabric, including intermediate xform prims. When disabled, time-sampled transforms are evaluated on-the-fly during the transform hierarchy update, which is more efficient but may not be accurate when multiple transforms are changed at once along a chain of ancestors.
Note
When you notice unexpected behavior with time-sampled transforms, you can try enabling this setting to see if it fixes the issue.
singleThreaded#
- Setting Path:
/app/usdrt/population/utils/singleThreaded- Type:
Boolean
- Default:
false
Force single-threaded population. Useful for debugging but significantly slower than multi-threaded population.
inferDisplayColorFromMaterial#
- Setting Path:
/app/usdrt/population/utils/inferDisplayColorFromMaterial- Type:
Boolean
- Default:
false
When enabled, attempts to infer display colors from material properties for visualization purposes.
Fabric Hierarchy Settings#
These settings control the Fabric hierarchy and extent computation behavior.
progressiveExtentsUpdate#
- Setting Path:
/app/usdrt/hierarchy/progressiveExtentsUpdate- Type:
Integer
- Default:
1000
Enable progressive extent updates. When enabled (non-zero), extents are updated progressively over multiple frames. Set to 0 to update all extents immediately on each change; note that this may significantly reduce performance.
Note
When you notice unexpected behavior with extent updates, you can try setting this to 0 to see if it fixes the issue.
fastLeafUpdates#
- Setting Path:
/app/usdrt/hierarchy/fastLeafUpdates- Type:
Boolean
- Default:
true
Enable optimized updates for leaf nodes in the hierarchy tree. May increase performance when transforms of leaf prims are updated frequently.
partialGpuUpdate#
- Setting Path:
/app/usdrt/hierarchy/partialGpuUpdate- Type:
Boolean
- Default:
false
Enable partial GPU updates for hierarchy data to improve performance.
Note
This feature may improve performance significantly when most of the hierarchy needs to be updated every frame. It may lead to reduced performance when only a small subset of the hierarchy is changing.
Scene Delegate Settings#
These settings control the behavior of the Fabric Scene Delegate when populating Hydra.
disableLightScaling#
- Setting Path:
/app/usdrt/scene_delegate/disableLightScaling- Type:
Boolean
- Default:
false
Disable automatic light scaling in the scene delegate.
disableLightLinking#
- Setting Path:
/app/usdrt/scene_delegate/disableLightLinking- Type:
Boolean
- Default:
false
Disable light linking feature in the scene delegate.
disablePrimvarInheritance#
- Setting Path:
/app/usdrt/scene_delegate/disablePrimvarInheritance- Type:
Boolean
- Default:
false
Disable primvar inheritance from parent prims in the scene graph.
disableInstancePrimvarOverriding#
- Setting Path:
/app/usdrt/scene_delegate/disableInstancePrimvarOverriding- Type:
Boolean
- Default:
false
Disable the ability for instances to override primvars from their prototypes.
useHydraBlendShape#
- Setting Path:
/app/usdrt/scene_delegate/useHydraBlendShape- Type:
Boolean
- Default:
false
Use Hydra’s native blend shape support instead of FSD’s implementation.
createLightsInOrder#
- Setting Path:
/app/usdrt/scene_delegate/createLightsInOrder- Type:
Boolean
- Default:
false
Create lights in a specific order to ensure deterministic behavior.
useMatrixForInstanceProxyTransforms#
- Setting Path:
/app/usdrt/scene_delegate/useMatrixForInstanceProxyTransforms- Type:
Boolean
- Default:
true(falsein Kit 108 and earlier)
Use matrix representation for instance proxy transforms instead of decomposed (translation, rotation, scale) transforms.
This may save memory when instancing is used heavily.
Mutually exclusive with instanceCompactTransforms.
Note
USD allows arbitrary affine transforms to be applied to instance proxy prims (including shearing), which may not be represented by decomposed transforms.
provideMaterialNodeParamTypes#
- Setting Path:
/app/usdrt/scene_delegate/provideMaterialNodeParamTypes- Type:
Boolean
- Default:
false
Provide type information for material node parameters to the renderer.
implicitSphere/numRadialAxial#
- Setting Path:
/app/usdrt/scene_delegate/implicitSphere/numRadialAxial- Type:
Integer
- Default:
10
Number of radial and axial subdivisions for implicit sphere tessellation. Higher values produce more accurate spheres at the cost of more geometry.
Command Line Usage#
Many of these settings can be overridden from the command line when launching Kit:
# Enable Fabric Scene Delegate
kit.exe --/app/useFabricSceneDelegate=1
# Disable fast diffing
kit.exe --/app/usdrt/population/utils/enableFastDiffing=0
# Enable single-threaded population for debugging
kit.exe --/app/usdrt/population/utils/singleThreaded=1
# Combine multiple settings
kit.exe --/app/useFabricSceneDelegate=1 \\
--/app/usdrt/population/utils/mergeMaterials=1
Performance Tuning#
Recommended Settings for Performance#
For optimal performance in large scenes:
Keep
enableFastDiffingenabled (default)Consider enabling
mergeMaterialsfor scenes with many duplicate materialsUse
enableRendererInstancingfor scenes with heavy instancingKeep
singleThreadeddisabled (default) for multi-threaded performance
Memory Optimization#
To reduce memory usage:
Enable
mergeMaterialsto deduplicate materialsUse
instanceCompactTransformsfor heavily instanced scenesKeep
populateAllAuthoredAttributesdisabled (default)Keep
createAllMaterialsdisabled (default)
Debugging Settings#
When debugging population issues:
Enable
singleThreadedfor deterministic, easier-to-debug behaviorDisable
enableFastDiffingif you suspect diffing issuesUse
populateAllAuthoredAttributesto ensure all data is available in Fabric
Configuration Examples#
High Performance Setup#
--/app/useFabricSceneDelegate=1
--/app/usdrt/population/utils/enableFastDiffing=1
--/app/usdrt/population/utils/mergeMaterials=1
--/app/usdrt/population/utils/enableRendererInstancing=1
Memory Efficient Setup#
--/app/useFabricSceneDelegate=1
--/app/usdrt/population/utils/mergeMaterials=1
--/app/usdrt/population/utils/instanceCompactTransforms=1
Debug Setup#
--/app/useFabricSceneDelegate=1
--/app/usdrt/population/utils/singleThreaded=1
--/app/usdrt/population/utils/enableFastDiffing=0
--/app/usdrt/population/utils/populateAllAuthoredAttributes=1