Skip to content

UsdUtilsComplianceChecker migration

jesschimein edited this page Jun 20, 2024 · 4 revisions

The following rules need to be migrated to the new validation framework.

Instructions

  1. Review the list of rules to be migrated
  2. Add your name in the Volunteer column to let others know you're working on the validator
  3. Submit a PR!
  4. (optional) Update the status on this tracker.

Tracker

# Status Volunteer Rule Group Details
1 To do tbd StageMetadataCheckerUpAxisY ARKit usdStage metadata of upAxis must be Y
2 To do tbd TextureChecker ARKit only support texture of type exr jpg jpeg or png, nothing else is allowed for arkit.
3 To do tbd ARKitPackageEncapsulationChecker ARKit For a package root layer, no referenced files should be outside this package.
4 To do tbd ARKitLayerChecker ARKit extensions of any layer in a arkit package.
5 To do tbd ARKitPrimTypeChecker ARKit ARkit can have only specific prim types.
6 To do tbd ARKitShaderCheckr ARKit ARKit shaders must have id as their implementationSource, + other checks
7 To do tbd ARKitMaterialBindingChecker ARKit material binding rels must have valid taget
8 To do tbd ARKitFileExtensionChecker ARKit Only layers and textures are allowed in a package.
9 To do tbd MissingReferenceChecker coreUSD Composed USD Stage should not contain any unresolvable asset dependencies, in every variant(s) of the asset, when using default asset resolver.
10 PR submitted beersandrew StageMetadataChecker coreUSD Various usdStage metadata checks, such as upAxis, metersPerUnit, defaultPrim.
11 To do tbd PrimEncapsulationRule coreUSD, usdGeom, usdShade Though this is a generic rule, currently it only is being used to test for UsdGeomBoundable and UsdShade related concepts. (1) Boundables may not be nested under Gprims (2) Connectable prims (eg Shaders, Materials, etc) can only be nested inside other container-like connected prims.
12 To do tbd NormalMapTexture UsdPreviewSurface (usdShadeShader) Rule governing nodes that feed the inputs:normal of a UsdPreviewSurface.
13 To do tbd MaterialBindingAPIAppliedChecker UsdShade A prim providing a material binding, must have MaterialBindingAPI applied. (This and other APISchema based test might get bundled in a generic coreUSD test instead of specific multiple domain level tests)
14 Done tallytalwar ShaderPropertyTypeConformanceChecker UsdShadeShader UsdShadeShader property types must conform to property types from their sdr representations.
15 To do tbd SkelBindingAPIAppliedChecker UsdSkel A prim providing a skelBinding properties, must have SkelBindingAPI applied. (This and other APISchema based test might get bundled in a generic coreUSD test instead of specific multiple domain level tests)
16 To do tbd ByteAlignmentChecker usdz Files in a usdz package must align to 64 bytes
17 To do tbd CompressionChecker usdz Files within usdz package should not be compressed or encrypted.

Helpful References

Best Practices

  • “Keyword” metadata for a validator belonging to a schemaDomain should be: Validators , Example: UsdCoreValidators, UsdShadeValidators.
  • Prefix plugin based validators with plugin name. Example: “usd:CompositionErrorTest”, “usdShade:ShaderSdrCompliance”.
  • Provide public tokens for validator name and keyword metadata. Examples: usdCore | usdShade
  • Logical encapsulation of Validator rules.
  • Granular validation rules using PrimValidateTask vs StageValidateTask (for improved performance)
Clone this wiki locally