PixarAnimationStudios / OpenUSD

Universal Scene Description
http://www.openusd.org
Other
6.14k stars 1.22k forks source link

Sub-root references into valueClips do not include the time sample data provided by the valueClips #1470

Open ablev-dwa opened 3 years ago

ablev-dwa commented 3 years ago

Description of Issue

I have attached an example where a prim contains a sub-root reference to a prim that is a descendant of a valueClips prim within another layer: valueclips.zip

shot.usd

#usda 1.0
(
    defaultPrim = "insideMesh"
    startTimeCode = 101
    endTimeCode = 102
)

def "insideMesh" (
    prepend references = @./triangleClips.usd@</top/triangle>
)
{
}

triangleClips.usd

#usda 1.0
(
    endTimeCode = 102
    startTimeCode = 101
    subLayers = [
        @./triangleClips.topology.usd@
    ]
)

over "top" (
    clips = {
        dictionary default = {
            double2[] active = [(101, 0), (102, 1)]
            asset[] assetPaths = [@./triangle.101.usd@, @./triangle.102.usd@]
            asset manifestAssetPath = @./triangleClips.topology.usd@
            string primPath = "/top"
            double2[] times = [(101, 101), (102, 102)]
        }
    }
)
{
}

The Mesh /top/triangle is only defined within the valueClips manifest, and within the valueClip files themselves. When shot.usd composes, /insideMesh is basically just the contents of /top/triangle in the manifest/topology file. But one might expect that /insideMesh would be the evaluated contents of the valueClips.

@spiffmon explained on usd-interest why this isn't currently expected to work (pcp / composition vs stage / value resolution) but suggested that I file an issue to track the idea anyhow.

Steps to Reproduce

  1. Open shot.usd inside valueclips.zip
  2. Note that /insideMesh has no points timeSamples

System Information (OS, Hardware)

Linux

Package Versions

21.02

jilliene commented 3 years ago

Filed as internal issue #USD-6593