Weird animated material issue when using 60 tc/sec instead of 24

OneToSixtyBug.zip (1.9 MB)

I’m uploading a zip - here’s the README that explains the issue:

This directory contains two top-level USD files, the only difference being that one has 24 framesPerSecond and timeCodesPerSecond, while the other has 60 framesPerSecond and timeCodesPerSecond.

Other than that, they have the same:

  • start/end timeCodes (1 & 60, respectively)
  • mesh that has the same material bound to it

That material has a texture which changes every integer time code to point at a different jpg file that has that number as a picture. This material is in the file DiffuseMaterial__NumbersCard.usd, and the JPG images are in the images subdirectory.

One would expect that both would show the same images as you monontonically increase the time code, the only difference that one would last for 1 second of playback (60/60) and the other would be 2.5 seconds (60/24).

Unfortunately, that is not what happens.

For the file OneToSixty_60.usd, as the timecode increases in usdview, the corresponding timecode that is used to look up which texture file to use lags behind by 24/60 amount, so by the time the timecode reads 60 in usdview, it’s only showing the texture “24” (see enclosed screenshot).

For the file OneToSixty_60.usd, as the timecode increases in usdview, the corresponding timecode that is used to look up which texture file to stays in step with the timecode, so by the time the timecode reads 60 in usdview, it’s showing the texture “60” (see other screenshot).

I had some trouble posting this here initially, so I went ahead and filed an issue on GitHub: